首页 > 解决方案 > Reactjs 组件`this.state` 未定义

问题描述

我是 reactjs 的新手,并试图制作一个组件。我设置this.statecomponentWillMount()然后我调用一个方法:

componentWillMount() {
        this.setState({ value: this.props.value || "0" });
        this.changeCbState = this.changeCbState.bind(this); 
        this.changeCbState();
    }

但在我的方法changeCBState this.state中是未定义的:

changeCbState() {
        console.log(this.state.value)
    }

错误:Uncaught TypeError: Cannot read property 'value' of null

标签: javascriptreactjs

解决方案


问题可能是您不会在构造函数中初始化状态,并且由于 this.setState 是异步的,因此在您尝试访问changeCbState函数之前可能不会初始化状态。

此外,您在生命周期中编写的初始化代码也componentWillMount需要进入,constructor因为该componentWillMount方法应该被弃用。

constructor(props) {
    super(props);
        this.state = {
           value: this.props.value || "0"
        }
        this.changeCbState = this.changeCbState.bind(this); 
        this.changeCbState();
    }

推荐阅读