无法更新反应组件中的状态

Can't update state in react component

我有一个组件 AddMenu

constructor(props) {
  super(props);
  this.state = {
    menu: '',
    make: '',
    newCar: '',
  }  
  this.addConfirmFuction=this.addConfirmFuction.bind(this);
}

通过更改输入文本更新菜单、品牌、型号、年份,有效。

handleChangeEvent(e) {
    this.setState({
        [e.target.name]: e.target.value,
    });
  }

然后我想将状态中的所有内容合并到状态"newcar"中

addConfirmFuction() {
let newEntered=[];
newEntered=newEntered.concat(this.state.menu);
newEntered=newEntered.concat(this.state.make);
this.setState({newCar:newEntered,});
}

在运行最后一行代码:this.setState (newCar: newEnteredCar)之后,没有更新,还是''。我看了很多文档,想不通...我在状态构造函数中绑定了函数,我使用了setState函数,但无法提前更新state.thank你

你检查过 "make" 和 "menu" 中的状态值 "addConfirmFunction()" 是否真的不为空吗?

此外,从您的代码来看,"make" 和 "menu" 似乎只是字符串。 "newCar" 被设置为数组类型的值的任何原因?如果它不需要是数组,那么我猜 this.state.make + this.state.menu 就足够了!

编辑:

我想我遇到了问题。如果您在调用该行后立即检查状态值,那么您可能看不到新值,因为 setState 是 React 中的异步函数。 (为了提高性能)。请阅读此堆栈溢出 link。有很多文章都在谈论它。

如果您想查看新值,因为此 setState 调用渲染,请在渲染方法处保留一个断点并检查 newCar 的值是否可用。