我想知道我们仅使用setState()来更新react中的状态的原因吗?
为什么我们不能做到这一点?
this.state.vote = this.state.vote + 1
答案 0 :(得分:4)
之所以需要使用setState()
方法,是因为有一个称为可变性的概念。
当React组件的状态发生变化时,通常希望它触发组件的重新渲染(以反映这些更改)。除非setState
禁止这样做,否则使用shouldComponentUpdate
总是会触发重新渲染。通过像这样this.state.vote = this.state.vote + 1
来设置状态对象的属性,就可以更改现有的状态对象。由于javascript中对象的工作方式,React无法轻松地判断该对象已更改。
当您使用React的setState()
方法时,您将创建一个新版本的状态对象,React可以识别该状态对象,进而知道它需要重新呈现组件。
这是一个简化的解释,但希望它可以向您解释核心概念。