【发布时间】:2018-08-18 06:04:47
【问题描述】:
和
之间有区别/优势吗?const { foo } = this.state
还有一个传播
const { foo } = { ...this.state }
我将通过在最后一行调用 this.setState({foo}) 来更新状态。
我所说的“差异/优势”是指:foo 上是否有任何突变(如 push)只能通过破坏扩展状态(后者)才能正确完成?
【问题讨论】:
-
存在差异,但除非您提供这样做的理由,否则无法说这是否有利。不同之处在于,在第一个代码块中,您修改了
foo,同时也修改了this.state.foo。在第二个块中,您不会因为您将键浅复制到另一个对象。无论如何,你不应该改变状态,所以...... -
所以后者是有利的,因为我可以安全地执行突变,然后通过
this.setState({foo})更新状态 -
不要那样做。只是不要进行突变
标签: javascript reactjs react-native ecmascript-6