onDidFocus()
関数が呼び出されると、ナビゲータがインスタンス化したコンポーネント(シーン)からメソッドを呼び出す必要があります。Navigatorがマウントしたコンポーネントのメソッドを呼び出す方法は?
これは私がナビゲーターをインスタンス化する方法である:
<Navigator
initialRoute={{ name: 'Login' }}
renderScene={ this.renderScene }
configureScene={(route, routeStack) => Navigator.SceneConfigs.FloatFromRight}
onDidFocus={(route) => route.component.onFocus()}
/>
そして、これが私のrenderScene()
方法です:route.component
はインスタンスへの参照ではありません(私は推測)以来
renderScene(route, navigator) {
if(route.name == 'Login') {
route.component = <Login navigator={navigator} {...route.passProps} />
}
return route.component
}
しかしroute.component.onFocus()
はundefined
ですこれはLogin
でマウントされていましたが、タイプはです。
したがって、マウントされたコンポーネントのインスタンスへの参照を取得するにはどうすればよいですか?
onDidFocus()
メソッドが呼び出されたときにマウントされたコンポーネントのメソッドを呼び出すにはどうすればよいですか?
'renderScene'が' onDidFocus'の前に呼び出され、 'this.state.currentRoute'が' undefined'なのでコードが機能しません。 – Pier
それはあなたがパーレントコンポーネントの状態を変更し、新しいコンポーネントを子コンポーネントに渡すことができるというコンセプトでした – farwayer
コンポーネント(または他の小道具)に 'route'を渡しても問題は解決しません。 – Pier