我正在创建一个react native应用程序,现在我想在屏幕之间传递数据。如果我像这样传递数据 "this.props.navigation.navigate('MyScreen1',{MyData:'Hello this is a data'})",它就能正确传递数据。但是我想在goBack()里面传递数据。我如何在react native中用 "this.props.navigation.goBack() "方法把数据传到另一个屏幕上?
我在这里试了一下,我把数据传到其他屏幕上,我添加了以下代码。
this.props.navigation.goBack({MyData:'Hello this is a data'});
而数据检索界面我添加了以下代码。
var myData = this.props.navigation.state.params.MyData;
console.warn(myData );
但是这里什么都不会发生。
你必须 pass a call back function while navigating to screen
并在该回调函数之前执行 navigation.back()
YourCallBackFunction=(dataFromNextScreen)=>{
console.log('dataFromNextScreen', dataFromNextScreen)
}
this.props.navigation.navigate('ScreenName', { YourCallBackFunction: function })
现在在你的屏幕上,在你想执行goBack函数的地方把数据传给那个回调函数。
this.props.navigation.state.params.YourCallBackFunction(dataToBePassed)
this.props.navigation.goBack()
Edit:
这里有一个我为你创建的小吃进入日志,并看到新传递的数据在导航返回。