我想推送对象数组的新状态,该对象的属性之一应具有先前对象属性的值。
我已经尝试过此代码(如下),但是它说 “ TypeError:无法读取未定义的属性'country_id'”
state ={
countryControls: [{
id: null,
country_id: '',
description: '',
city_id: '',
}]
}
addControls () {
var countryControls = this.state.countryControls;
countryControls.push({
id: null,
country_id:countryControls.length > 0 ?
countryControls[ countryControls.length - 2 ].country_id : '',
description: '',
city_id: '',
});
this.setState({ countryControls: countryControls});
}
我希望它的输出如下: 数组中的第一个对象
country_id值= 5(由用户手动输入)
数组中的第二个对象
country_id值= 5(用户最后输入的自动值)
答案 0 :(得分:0)
当数组长度为1
时,countryControls[ countryControls.length - 2 ]
将为undefined
。您只能减去1
。
addControls () {
var countryControls = this.state.countryControls;
countryControls.push({
id: null,
country_id:countryControls.length > 0 ?
countryControls[ countryControls.length - 1 ].country_id : '',
description: '',
city_id: '',
});
this.setState({ countryControls: countryControls});
}