setState 似乎没有更新状态

setState doesnt seem to update the state

onSelectedRow(user, clickEvent){
     const state = this.state;
    this.state['userId'] = clickEvent.target.getAttribute(user['mta:UserId']);
    this.setState(state);
    console.log(user['mta:UserId']);
    console.log(this.state);
}

好的,所以当我在我的应用程序中单击 table-cell 时,会调用此函数。

重点是获取用户 UserId 并设置状态。此 UserId 稍后会 传递给子组件 并用于获取特定信息。问题是我在第一个 console.log 中得到了正确的数据,但是当我记录这个时。

说明由于某种原因,userId 仍然为空。有人遇到过类似的问题吗?

这很可能是因为您没有更新 const state,而是试图改变状态本身。 此外,您不必复制状态。您可以像这样只更新要更新的字段:

onSelectedRow(user, clickEvent) {
    this.setState({
        userId: clickEvent.target.getAttribute(user['mta:UserId'])
    }, () => { console.log(this.state.userId) });
    console.log(user['mta:UserId']);
}

此外,您的 console.log 不会立即读取状态变化,因为 setState 是一个异步操作。

如果你真的想阅读它,你可以将回调传递给 setState ,它会在状态更新后立即填充,或者使用 React 的生命周期方法 componentDidUpdate().