#react-native #react-native-android #react-navigation #react-native-navigation
#react-native #react-native-android #react-навигация #react-native-навигация
Вопрос:
У меня есть 2 экрана, родительский и дочерний, я хочу обновить родительский, когда я нажимаю одну из кнопок возврата (аппаратный / экранный заголовок) на дочернем экране.
это то, что я пробовал:
export default class ChildComponent extends React.Component {
constructor(props) {
super(props);
props.navigation.addListener('beforeRemove', (e) => {
e.preventDefault();
});
}
componentDidMount() {
BackHandler.addEventListener('hardwareBackPress', this.onHardwareBackPress);
}
componentWillUnmount() {
BackHandler.removeEventListener(
'hardwareBackPress',
this.onHardwareBackPress,
);
}
onHardwareBackPress = () => {
this.props.navigation.removeListener('beforeRemove');
this.props.navigation.navigate('parentComponent',data);
};
}
В документе react navigation 5 говорится, что я должен использовать navigate
вместо goBack/pop
, чтобы иметь возможность устанавливать новые параметры для моего предыдущего маршрута.
Но проблема с этим кодом заключается в том, что когда я нажимаю назад на своем дочернем экране, приложение закрывается (в стеке есть только эти 2 экрана). Есть идеи, что я сделал не так?