ですデータとアクションをそのcに委譲するツリーのどこかの親ヒルドレン。 Reactはそれ自体を「ツリー」としてモデル化しているため、ある時点でこれらのコンポーネントが親を共有することを意味します。ちょうどそれが<AppContainer>
と呼ばれるとしましょう。
<AppContainer> <-- this will delegate the data to the components below it
<Header>
<Navigation />
</Header>
<Content Grid>
<ApiResult />
</Content Grid>
</AppContainer>
あなたはその後、それ以下のコンポーネントに委譲したデータを<AppContainer>
に機能を揚げます。メニューをクリックすると、「保存された」項目が表示されたとします。あなたはこのような振る舞いをモデル化する可能性があります。これは、あなたが<ApiResult>
と<Navigation>
の両方でその変数にアクセスできるようになります
class AppContainer extends Component {
state = { showSaved: true };
onMenuClick =() => {
this.setState({ showSaved: true }); // example
};
render() {
return (
<div>
<Header>
<Navigation
showSaved={this.state.showSaved}
onMenuClick={this.onMenuClick}
/>
</Header>
<ContentGrid>
<ApiResult menuClicked={this.state.showSaved} />
</ContentGrid>
</div>
);
}
}
。その変数が状態で変更されると、両方に再レンダリングがトリガーされ、最新であることが保証されます。
[反応コンポーネントの外側をクリックして検出](https://stackoverflow.com/questions/32553158/detect-click-outside-react-component)の可能な複製 – lux