本人初学react
知道react 通过 setState()
更新状态
有一个疑问,如果 setState()
传入的是当前状态的引用
如
const { items } = this.state;
items.pop();
this.setState({ items });
这时候由于新的this.state.items
保存的是之前的引用, 所以实际新旧两个状态的items 都被pop出了一个元素,react 怎么确定这两个状态有差异,然后进行更新的呢?
items.pop() 后 prevState.items 的最后一个元素已经去除了,这时候 nextState.items 跟 prevState.items 不就一样了吗。
如果是
const { items } = this.state;
this.setState({ items: this.state.items.slice(0, this.state.items.length - 1)});
我能想得通,毕竟 this.state.items 没有变。。