Реагируйте на переопределение встроенной навигации onBack - PullRequest
0 голосов
/ 04 апреля 2019

Как мне отменить реакцию navigate.goBack().Моя цель - передать данные от потомка к родителю, которые будут использоваться для обновления родителя.

Здесь есть аналогичное решение реакции-навигации-возврата-и-обновления-родительского-состояния , однако они по-прежнему вызывают this.props.navigation.goBack(), я хочу использовать кнопку возвратав строке заголовка.

Ответы [ 2 ]

1 голос
/ 05 апреля 2019

Этого можно добиться с помощью функции обратного вызова.

например:

Родительский класс:

Добавить функцию обратного вызова в родительский класс и передать функцию в дочерний класс, используя реквизит.

...
...

//Navigating button 
 _didTapOnButton() {
    this.props.navigation.navigate("NextScreen", {
      callBackMethod: this._callBackMethod.bind(this)
    });
  }

//Call back method
_callBackMethod(dataFromChild) {
  //Your logic...
}

...
...

Детский класс:

...
...

//Child class back button
 _didTapOnBackButton() {
   const { params } = this.props.navigation.state; // Take parameter from navigation
   params.callBackMethod('data 1'); // Call back function with data: 'data 1'
   this.props.navigation.pop();
 }
...
...
0 голосов
/ 20 апреля 2019

Использование callBack с компонентомWillUnmount решило мою проблему

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...