反应本机导航覆盖onBack

时间:2019-04-04 16:23:11

标签: react-native react-navigation

如何覆盖反应navigate.goBack()。我的目标是将数据从子级传递到父级,这将用于更新父级。

react-navigation-goback-and-update-parent-state这里有一个类似的解决方案,但是他们仍然调用this.props.navigation.goBack(),我希望能够使用标题栏中的后退按钮。

2 个答案:

答案 0 :(得分:1)

您可以通过使用回叫功能来实现。

例如:

  

父类:

在父类中添加一个回调函数,并使用道具将该函数传递给子类。

...
...

//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();
 }
...
...

答案 1 :(得分:0)

使用带有componentWillUnmount的回调可以解决我的问题