无法更新React组件中的状态

时间:2018-08-20 23:58:35

标签: reactjs state updating

我有一个组件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函数,但是无法更新状态。请先谢谢您。

1 个答案:

答案 0 :(得分:0)

您是否检查过“ addConfirmFunction()”中的状态值“ make”和“ menu”是否真的不为空?

另外,从您的代码来看,“ make”和“ menu”看起来只是字符串。是否有将“ newCar”设置为数组类型的值的原因?如果不需要数组,那么this.state.make + this.state.menu就足够了!

编辑:

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

如果要查看新值,由于此setState需要渲染,请在render方法处保留一个断点,并检查newCar的值是否可用。