Reactjs 无理由反应中的状态未定义?

Reactjs 无理由反应中的状态未定义?,reactjs,setstate,react-state,Reactjs,Setstate,React State,我正在尝试使用setState访问和更改React组件下的状态。不知怎的,我得到了错误“iscreator”没有定义,但我已经在我的状态中定义了它。这里可能有什么错误?提前谢谢 我的类组件,其中我有状态: state = { training: {}, iscreator: false } componentDidMount() { if (this.props.token == this.state.training.coach) {

我正在尝试使用setState访问和更改React组件下的状态。不知怎的,我得到了错误
“iscreator”没有定义,但我已经在我的状态中定义了它。这里可能有什么错误?提前谢谢

我的类组件,其中我有状态:

state = {
        training: {},
        iscreator: false
    }

componentDidMount() {
        if (this.props.token == this.state.training.coach) {
                this.setState({
                    iscreator: true
                });
                console.log(iscreator)
            }else{}
    }

您需要引用
console.log(this.state.iscreator)
您需要引用
console.log(this.state.iscreator)
编写
console.log(this.state.iscreator)
而不是
console.log(iscreator)

在状态中声明引用iscreator的常量,如:

const{iscreator}=this.state

然后您可以编写
console.log(iscreator)
,它就会工作。

编写
console.log(this.state.iscreator)
而不是
console.log(iscreator)

在状态中声明引用iscreator的常量,如:

const{iscreator}=this.state


然后您可以编写
console.log(iscreator)
,它会工作。

它在您的状态下是对象的属性,而不是对象本身的引用。它在您的状态下是对象的属性,不是它自己的引用。为什么当我的状态标记等于training时,coach值“iscreator”值仍然不会更改为true?我想使用componentDidMount以外的其他东西吗?为什么当我的状态标记等于training.coach值'iscreator'值仍然没有更改为true时?我想使用componentDidMount以外的其他工具吗?