const { items } = this.state;
this.setState({
items: this.state.items.slice(0, this.state.items.length - 1)
});
我知道上面的代码在React中可以很好地工作。
然而,
const { items } = this.state;
items.pop();
this.setState({ items });
如果有一个由this.state.items
渲染的列表(比如<div className="list">{this.state.items}</div>
),我不明白为什么dom
仍然会更新。
我很困惑items.pop()
已经改变了原来的状态,为什么下一个状态的items等于原来状态的items,但是dom
仍然可以更新。
.slice()
也可以使用,它有默认参数。 - Jonas Wilms