这个问题与我今天早些时候遇到的这个问题有关:
Adding items to an array in javascript
现在可以将项目添加到我的数组中了,但是似乎更新数组时所有项目都是一样的,即使每次传入该方法的对象都不相同
我的方法如下:
addShoe(shoe) {
console.log("Adding new shoe to collection: ");
console.log(shoe);
this.setState(
{
shoes: [...this.state.shoes, shoe]
},
function() {
console.log("Shoe collection:");
console.log(this.state.shoes);
}
);
}
因此,运行一次后,这就是Chrome中的控制台的外观。似乎是正确的:
当我尝试向集合中再添加一个时,会发生以下情况:
现在我的收藏夹包含两个正确的项目,但是似乎收藏夹中的所有项目都具有相同的数据?
我在这里做错了什么? 编辑
在另一个React组件中,我具有以下状态:
this.state = {
shoe: {
selectedBrand: "",
selectedEU: "",
selectedUS: "",
selectedUK: "",
selectedFraction: ""
}
};
使用新值更新字段后,将触发以下方法:
updateSelectedValues(property, event) {
const shoe = this.state.shoe;
shoe[property] = event.value;
this.setState({ shoe: shoe });
}
当关闭该模式窗口中的按钮时,this.state.shoe将作为参数传递给“父”组件中的方法。