为什么键值对被添加两次到状态?

我有以下功能:为什么键值对被添加两次到状态?

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});

}

我意识到ourItems是不是真的想在做什么,但为什么当加入被添加的键值对那些三线两次,状态呢?

回答:

JavaScript中只有原语通过值传递。其他一切都通过参考传递。 通过设置ourItems = allItems[key],可以将ourItems变量指向allItems[key]阵列。它不会复制数组。因为你实际上将对象两次推入同一个数组中。

以上是 为什么键值对被添加两次到状态? 的全部内容, 来源链接: utcz.com/qa/258642.html

回到顶部