我有一个组件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函数,但是无法更新状态。请先谢谢您。
答案 0 :(得分:0)
您是否检查过“ addConfirmFunction()”中的状态值“ make”和“ menu”是否真的不为空?
另外,从您的代码来看,“ make”和“ menu”看起来只是字符串。是否有将“ newCar”设置为数组类型的值的原因?如果不需要数组,那么this.state.make + this.state.menu
就足够了!
编辑:
我认为我有问题。如果您在调用该行之后立即检查状态值,那么您可能看不到新值,因为setState
是React中的异步函数。 (为了提高性能)。请阅读此堆栈溢出link。有很多关于它的文章。
如果要查看新值,由于此setState需要渲染,请在render方法处保留一个断点,并检查newCar
的值是否可用。