私は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
という名前の国有財産を持っています。状態に基づいて、追加のクラスがボタンに追加されます。
OfficeUIButton
の2つのコンポーネントがページにあるとしましょう。最初のボタンをクリックして2番目のボタンをアクティブにするにはどうすればよいですか?
これは単なるダミーの例ですが、私はモーダルポップアップや、特定のアクションに基づいてボタンを無効にするために必要です。
ありがとうございました。
[状態を上げる](https://facebook.github.io/react/docs/lifting-state-up.html)。複数のコンポーネントが何らかの形で相互に依存している場合、状態は共通の祖先の1つが所有する必要があります。 –
可能な重複:[ReactJSの2つのコンポーネントが通信する](https://stackoverflow.com/questions/21285923/reactjs-two-components-communicating) – oklas