<Provider store={this.props.store}>
<ConnectedRouter history={this.props.history}>
<AppWrap>
<Header />
<Main>
<Switch>
<Route exact path="/" component={Component1}/>
<Route path="/component2" component={Component2}/>
</Switch>
</Main>
</AppWrap>
</ConnectedRouter>
</Provider>
内部App.componentWillMountでは、Reduxアクションthis.props.requestApplesApiData
がトリガーされます。それは、サガによって処理されます。これは、APIからいくつかのデータを取り出し、ペイロード付き別のアクションreceiveApplesApiData
を返します。ペイロードは、レデューサーによって還元状態に追加されます。sagaが親で完了するまで子コンポーネントのレンダリングを延期するReactコンポーネント
componentWillMount(){
// triggers an action
// which is picked up by a saga,
// which is handled by the reducer
// which updates the redux state
this.props.requestApplesApiData();
}
私は(。Reduxの拡張子w)はクロムのdevのツールでそれを点検するとき
Reduxの状態は、細かい更新されますが、私はReduxの状態は(最近フェッチ「りんご」と)時間内に更新されていないことに気づきましたコンポーネント2では競合状態が獲得されていましたが、これは、コンポーネント2がレンダリング機能の時点では存在しなかったため、「リンゴ」を表示できないことを意味します。
再レンダリングは通常ネストされたツリー構造の場合は自動的に行われますが、「リンゴ」はレデックスストアの独自のルートオブジェクトに配置されます。
どのようにしてアプリケーションが必要なデータを取得するのをComponent1とComponent2が待機するようにすることができますか。言い換えれば、データが還元されるまで、どのようにAppでレンダリング機能を遅延/遅延させることができますか?