我将props和一个函数传递给导航器的第二页,如下所示:
unlock: function(object) {
switch(true) {
case (object==0): this.setState({a: false});break;
case (object==1): this.setState({b: false});break;
case (object==2): this.setState({c: false});break;
case (object==3): this.setState({d: false});break;
default: this.setState({e: false});break;}
},
然后通过导航器传递道具:
this.props.navigator.push({
title: title,
component: component,
passProps: {unlock: this.unlock,a: this.state.a, b: this.state.b,c: this.state.c,d: this.state.d, e: this.state.e}
});
但是当我在第二个导航器页面中调用该函数时,它会更新,但仅限于主页。当我留在页面上时,第二个导航器页面中的信息不会更新。例如,这段代码:
<Text>{this.props.a}</Text?
在第二页中仍然显示激活功能之前的值。我必须返回主页面,然后再次返回到第二页以查看更新的值。这似乎只发生在导航器上。使用任何其他方法,它会立即更新。
我唯一的解决方法是在第二页中设置状态以及为主页设置道具。这似乎是一个不必要的解决方法。
答案 0 :(得分:0)
您是否在下一个组件中调用了解锁功能?在你调用之前,它不会设置主要组件的状态,因为解锁功能在主要组件中,它只会在主组件上调用,我认为你的问题。