当你通过引用传递我们改变状态

时间:2017-12-03 16:42:17

标签: javascript reactjs

我有以下功能:

filterList(event) {
  var updateList = this.state.initialItems;

  updateList = updateList.filter(function(item) {
                  return item.search(event.target.value) !== -1;
               });

  this.setState({currentItems: updateList });
}

如果我们通过引用传递不是updateList和this.state.initialItems指向同一个东西?

我如何制作this.state.initialItems的副本?

2 个答案:

答案 0 :(得分:2)

  

如果我们通过引用传递isn&t更新列表和   this.state.initialItems指向同一个东西?

没有。您正在返回一个全新的数组(每MDN):

  

filter()方法创建一个包含所有传递元素的新数组   由提供的函数实现的测试。

答案 1 :(得分:1)

要创建一个没有引用的新数组,您也可以使用spread运算符。 例: var updateList = [... this.state.initialItems];

上面的代码将创建一个没有前一个引用的新数组。