私はデータが初期化される私のアプリのスプラッシュ画面に取り組んでいます。ナビゲーション実験:小道具を場面に渡すには?
欲求の結果は、単純である:componentWillMountに
- ロードデータ:ビューがロードされたデータに
loading indicator
- を示す:図は、第1の後
check icon
- を示している:他のシーンに移動
ビューをloading indicator
からに変更するには、私はdataReady
スプラッシュ画面のシーンに渡される小道具を更新する必要がありますが、ナビゲーション状態を更新しないとこれを行う方法がわかりません。ナビゲーション状態のroute
オブジェクトを介して小道具をシーンに渡す)。ここで
は私の試み(期待どおりに動作しない)である。その結果
class MainRouter extends React.Component {
componentWillMount() {
// Load data.
this.props.initApp();
}
componentWillReceiveProps(nextProps) {
// initAppReady is set to true 1 second after data loaded.
if (nextProps.initAppReady) {
this.props.handleNavigation({ type: 'PUSH', route: { key: 'home' } });
}
}
renderScene = props => {
switch (props.scene.key) {
case 'scene_splash_screen':
// dataReady is set to true after data loaded.
return (<SplashScreen dataReady={this.props.dataReady} />);
case 'scene_home':
return (<Home />);
default:
return null;
}
}
render() {
return (
<NavigationCardStack
direction={'vertical'}
navigationState={this.props.mainRoutes}
renderScene={this.renderScene}
/>
);
}
}
props.dataReady
がSplashScreen
シーンがそれに応じて更新されませんので、変更されたとき、renderScene
メソッドが呼び出されません。
申し訳ありませんが、私が誤ってあなたのポストを編集する代わりに試してみました私の答え...私の編集を無視してください。 (それはちょうど拒否されました、それについては残念です) –