首页 > 解决方案 > 如何使用参数弹出到上一个屏幕?

问题描述

我在当前状态为 {key:'value'} 的屏幕 A 上,我导航到屏幕 B

现在我试图再次从屏幕 B 弹出到屏幕 A ,但我不想丢失屏幕 A {key:'value'} 中的当前状态

一些解决方案是将数据保存在 AsynStorage 中,并在返回屏幕 A 时检索它,但这不是一个好习惯

.pop() 这样做,但如果我需要返回额外的参数怎么办?

Navigation.pop(this.props.componentId , {
                               passProps: {
                                       data : 'current',
                                       more : 'just-example'
                                     }});

上面的代码,没有用

有什么建议么 ?

我不使用任何状态管理工具,例如 Redux/Mobx ..

标签: reactjsreact-nativereact-native-navigation

解决方案


我发现一个好的解决方案是发送带有参数的回调函数

在屏幕 A

  getback(success)
  {
      alert(success);
  }

  Navigation.push(this.props.componentId , { component : {
         name : "Payment",
         passProps: {
         subscription : current,
         getback: this.getback
       },
   }});

然后在屏幕 B 中,当您弹出到屏幕 A 时,触发 getback 功能

Navigation.pop(this.props.componentId);
this.props.getback(true);

这对我很有效


推荐阅读