Javascript 为什么在正确设置状态时不声明状态?

Javascript 为什么在正确设置状态时不声明状态?,javascript,reactjs,Javascript,Reactjs,我从服务器获取数据并将其设置为状态。为什么不保存状态 async componentDidMount() { const claimNumber = 'T1339838' const { runtime } = this.context const data = await runtime.select('comments-get', { claimNumber : claimNumber}) // THIS commentsData ARE empty

我从服务器获取数据并将其设置为状态。为什么不保存状态

 async componentDidMount() {
    const claimNumber = 'T1339838' 
    const { runtime } = this.context
    const data = await runtime.select('comments-get', { claimNumber : claimNumber})

    // THIS commentsData ARE empty
    this.setState = ({ commentsData: data, })

    console.log("COMENTS DATA: ", this.state.commentsData)
  }

您设置的状态不正确。另外,setState是异步的,所以您可能希望将该控制台日志语句放在setState回调中

this.setState({ commentsData: data }, () => {
    console.log("COMENTS DATA: ", this.state.commentsData)
})

打字错误:您在函数名和围绕其参数的括号之间加了一个=,因此您重写了函数而不是调用它。它也是异步的,因此您需要使用回调来读取更新的数据。this.setState{commentsData:data,},=>console.logCOMENTS data:,this.state.commentsData;缺少分号?@Frost-不,ASI规则没有问题。@Quentin yeas谢谢!