Javascript。将项目添加到数组会更新所有项目

时间:2018-11-14 14:10:54

标签: javascript

这个问题与我今天早些时候遇到的这个问题有关:

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中的控制台的外观。似乎是正确的:

enter image description here

当我尝试向集合中再添加一个时,会发生以下情况:

enter image description here

现在我的收藏夹包含两个正确的项目,但是似乎收藏夹中的所有项目都具有相同的数据?

我在这里做错了什么? 编辑

在另一个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将作为参数传递给“父”组件中的方法。

0 个答案:

没有答案