Версия React-навигации: 3.0.9
Я создаю drawerLayout в react-native
с помощью следующего кода с помощью react-navigation
:
export default createDrawerNavigator(
{
Pin: {
screen: PinScreen,
navigationOptions: {
drawerLockMode: 'locked-closed'
}
},
ListView: { screen: ListViewScreen },
},
{
initialRouteName: 'Pin',
headerMode: 'none',
contentComponent: props => <SideBar {...props} />
}
);
Внутри этого SideBar
компонента у меня есть следующий код обработки касания элемента:
<ListItem
style={styles.listItem}
onPress={() => {
this.props.navigation.dispatch(DrawerActions.closeDrawer());
this.props.navigation.push('ListView');
}}
>
<Text>Home screen</Text>
</ListItem>
Но когда я нажимаю этот элемент, я получаю сообщение, что this.props.navigation.push
не определено в этом onPress
обработчике.
Мне нужен экран ListView
, чтобы обновлять данные, когда-то показанные после действия навигации, и теперь поместить логику извлечения данных внутрь componentDidMount
. push
действительно работает для других экранов, но я чувствую, что эти props
, которые передаются в SideBar
, отличаются.
Итак, вопрос: как сделать ListView
перемонтировать / обновить данные экрана при переходе с SideBar
, как описано выше?