我刚刚开始使用React,它似乎只是美丽的创建用户界面,但是,我确实遇到组件间通信问题。React组件之间的沟通
我有一个非常简单的反应组件,代表一个按钮:
import React from 'react';
export default class OfficeUIButton extends React.Component {
constructor(props) {
super(props);
this.state = {
active: false,
};
// Bind the event handlers.
this.onMouseDownEventHandler = this.onMouseDownEventHandler.bind(this);
this.onMouseUpEventHandler = this.onMouseUpEventHandler.bind(this);
}
onMouseDownEventHandler() {
this.setState({
active: true
});
}
onMouseUpEventHandler() {
this.setState({
active: false
});
}
render() {
return <div className={"officeui-button" + (this.state.active ? ' active': '')} onMouseDown={this.onMouseDownEventHandler}
onMouseUp={this.onMouseUpEventHandler}>
<span className="officeui-button-label">{this.props.text}</span>
</div>
}
}
该组件有一个名为active
的状态属性。根据状态,将一个附加类添加到按钮中。
我们假设我的页面上有2个这样的OfficeUIButton
组件,我怎么能通过点击第一个按钮使第二个按钮处于活动状态?
这只是一个虚拟的例子,但我需要这个例如模式弹出,或基于某些行动禁用按钮。
感谢您的帮助。
[提起状态](https://facebook.github.io/react/docs/lifting-state-up.html)。如果多个组件在某种程度上相互依赖,那么该州应该由其共同的祖先之一拥有。 –
可能的重复:[ReactJS两个组件通信](https://stackoverflow.com/questions/21285923/reactjs-two-components-communicating) – oklas