如何在react-native中使用 "this.props.navigation.goBack() "将数据传入另一个屏幕?

问题描述 投票:0回答:2

我正在创建一个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 );

但是这里什么都不会发生。

reactjs react-native react-native-navigation
2个回答
1
投票

你必须 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: 这里有一个我为你创建的小吃进入日志,并看到新传递的数据在导航返回。

https:/snack.expo.io@waheed2514d924。


0
投票

貌似没有param可以送进去。后退功能. 所以你可以用 navigation.navigate 照你说的,还是试试 this.props.navigation.state.params 设定参数 之前 goback 功能?

© www.soinside.com 2019 - 2024. All rights reserved.