Как отправить данные на предыдущий маршрут на аппаратном уровне нажмите react navigation 5

#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 экрана). Есть идеи, что я сделал не так?