onDidFocus()
함수가 호출되면 네비게이터가 인스턴스화 한 컴포넌트 (장면)의 메소드를 호출하려고합니다.Navigator가 탑재 한 구성 요소의 메서드를 호출하는 방법은 무엇입니까?
<Navigator
initialRoute={{ name: 'Login' }}
renderScene={ this.renderScene }
configureScene={(route, routeStack) => Navigator.SceneConfigs.FloatFromRight}
onDidFocus={(route) => route.component.onFocus()}
/>
그리고 이것은 내 renderScene()
방법 :
이 내가 네비게이터를 인스턴스화하는 방법이다
renderScene(route, navigator) {
if(route.name == 'Login') {
route.component = <Login navigator={navigator} {...route.passProps} />
}
return route.component
}
그러나 route.component.onFocus()
는 이후 undefined
이다 (나는 가정) route.component
이 인스턴스에 대한 참조 아니다 이는 Login
으로 마운트되었지만 Login
유형에 대한 참조입니다.
그럼 어떻게 마운트 된 구성 요소의 인스턴스에 대한 참조를 얻을 수 있습니까?
onDidFocus()
메서드가 호출 될 때 탑재 된 구성 요소의 메서드를 어떻게 호출 할 수 있습니까?
'renderScene'이'onDidFocus' 전에 호출되어'this.state.currentRoute'가'undefined'이므로 코드가 작동하지 않습니다. – Pier
그것은 당신이 parrent 구성 요소의 상태를 변경하고 자식 구성 요소에 새로운 소품을 전달할 수 있다는 개념이었습니다. – farwayer
'route'를 구성 요소 (또는 다른 소품)에 전달하더라도 문제가 해결되지 않습니다. – Pier