繁体   English   中英

如何基于道具更新React组件状态

[英]How to update react component state based on props

每当道具更改时,如何强制React组件更新状态?

我一直在使用该方法:

componentWillReceiveProps(nextProps){
    this.setState({key:nextProps}); 
    console.log(this.state);
  }

控制台向我显示nextProps是已定义的值,但是this.state.key仍未定义。

谢谢!

控制台日志this.state显示未定义,因为setState是异步的。 因此,当您执行setState时,它不会立即更新状态,这就是控制台日志不显示更新状态的原因。

您应该执行以下操作:

componentWillReceiveProps(nextProps){
    this.setState({key:nextProps}, () => {
        console.log(this.state);
    }); 
 }

在这里,当setState发生时,将调用定义为第二个参数的回调,然后更新状态。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM