我是React的新手,只是一个有关如何更新组件状态对象的问题。分析一些代码后,我认为:
在更新阶段,状态应该在shouldComponentUpdate方法之后但在render方法之前更新,我的理解正确吗?
如果答案是肯定的,是否还有另一种专用方法(例如“ UpdatingState”)来更新状态对象?
答案 0 :(得分:1)
react中的更新状态通过setState
生命周期方法完成
您可以像这样this.setState({name: 'new name'})
来调用它,它将状态对象键name
更新为新值,在这种情况下为new name
更新对象要困难一些。您必须先克隆对象。然后更改值,然后像这样重置状态
state = {
person: {
name: 'peter',
age: 25
}
const copy = {...this.state.person}
copy.name = 'new name'
this.setState({copy})
答案 1 :(得分:0)
是的,状态应该在shouldComponentUpdate之后更新(setState
)。更新阶段的顺序为
使用setState
答案 2 :(得分:0)
在状态和道具的每次更新后都有一个函数被调用:
componentDidUpdate(prevProps , prevState)