如何在wix react-native-navigation中通过pop传递参数?

时间:2019-12-10 08:24:31

标签: react-native wix-react-native-navigation

如何在pop方法中传递参数。

要求:有两个屏幕,屏幕1具有两个这样的标签:地址和帐单。每个选项卡布局上都有两个按钮。单击按钮后,在功能返回屏幕1之后转到屏幕2,但是现在哪个选项卡处于活动状态。如果转到地址标签,请返回到与帐单标签相同的地址标签。

告诉我怎么做?

3 个答案:

答案 0 :(得分:1)

您可以在按下屏幕时传递回调,例如

Navigation.push(this.props.componentId, {
  component: {
    name: "Your.ScreenName",
    options: {
      callback:this.yourCallBackFun
    }
  }
});

现在弹出时,您可以像调用该函数一样

this.props.callback();
Navigation.pop(this.props.componentId);

我认为它将为您提供帮助。

答案 1 :(得分:0)

屏幕A:

this.props.navigation.navigate('ScreenB', {func: this.func});
...
func = value => {
  console.log(value);
}

屏幕B:

this.props.navigation.getParam('func')();

您可以像这样调用ScreenA函数。

答案 2 :(得分:0)

屏幕1:

在第一个屏幕中编写导航功能和回调功能。 将回调函数作为导航参数传递给屏幕白色。

const cbFunction = () => new Promise((resolve) => {
  resolve();
});

const navigation = () => {
  const { componentId } = this.props;
  Navigation.push(componentId, {
    component: {
      name: `SCREEN_NAME`,
      options: {
        cbFunction: this.cbFunction
      }
    }
  });
}

屏幕2:

编写一个功能以返回到第一个屏幕。然后从导航参数调用回调函数。

const goBack = async () => {
  const { cbFunction, componentId } = this.props;
  await cbFunction();
  Navigation.pop(componentId);
}