我剛剛開始使用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