Я хочу вызвать метод из компонента (сцены), который был создан навигатором после вызова функции 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
Это была концепция о том, что вы можете изменить состояние исходного компонента и передать любые новые реквизиты дочернему компоненту. – farwayer
Даже если вы передадите «маршрут» на компонент (или любую другую опору), это не решит проблему. – Pier