setState()函数不起作用,我无法更新状态。我怎么解决这个问题?

时间:2019-08-25 22:42:28

标签: javascript reactjs react-native setstate

我想更新状态以控制模型,但是在运行此代码时不起作用。

这些是我控制模型可见性的状态

state = {
    loginWithMail: false,
    registerWithMail:true,
    remember:true,
  }

这就是我在函数中尝试过的。

    this.setState({
        registerWithMail: false,
        loginWithMail: true,
      })
      console.log(this.state)
  };

这是我试图控制的模型

 <Modal isVisible={this.state.registerWithMail}>

1 个答案:

答案 0 :(得分:4)

setState是异步的,因此您需要将console.log放入setState提供的回调中,以便在状态更新后进行记录。

    this.setState({
        registerWithMail: false,
        loginWithMail: true,
      }, () => console.log(this.state))
  };

我还认为,响应本机模式需要此属性,除非该属性是您创建的<Modal visible={this.state.registerWithMail}>

https://facebook.github.io/react-native/docs/modal.html#visible