如何在pop方法中传递参数。
要求:有两个屏幕,屏幕1具有两个这样的标签:地址和帐单。每个选项卡布局上都有两个按钮。单击按钮后,在功能返回屏幕1之后转到屏幕2,但是现在哪个选项卡处于活动状态。如果转到地址标签,请返回到与帐单标签相同的地址标签。
告诉我怎么做?
答案 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);
}