React Native道具不会使用导航器进行更新

时间:2016-02-24 13:03:51

标签: react-native navigator

我将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?

在第二页中仍然显示激活功能之前的值。我必须返回主页面,然后再次返回到第二页以查看更新的值。这似乎只发生在导航器上。使用任何其他方法,它会立即更新。

我唯一的解决方法是在第二页中设置状态以及为主页设置道具。这似乎是一个不必要的解决方法。

1 个答案:

答案 0 :(得分:0)

您是否在下一个组件中调用了解锁功能?在你调用之前,它不会设置主要组件的状态,因为解锁功能在主要组件中,它只会在主组件上调用,我认为你的问题。