为什么要添加两次键值对



我具有以下功能:

handleAddItem(s) {
  var key = Object.keys(s)[0];
  var value = s[key];
  var allItems = {...this.state.items};      
      allItems[key] = allItems[key];
      allItems[key].push({name: value});

  var ourItems = {};
      ourItems = allItems[key];
      ourItems.push({name:  value });        

  this.setState({items: allItems});
}

我意识到我们的Items并不是真的想做什么

javaScript中只有javaScript中的原始图。其他所有内容都是通过引用传递的。通过设置ourItems = allItems[key],您可以将ourItems变量点放在allItems[key]数组中。它不会复制数组。因此,您实际上将对象推了两次。