我不明白shouldComponentUpdate()方法如何访问旧状态,据我所知,props或状态更改后,shouldComponentUpdate()会被触发。
假设您调用setState(),之后将更改当前状态并使用新状态进行更新。但是,即使将状态更新为最新版本,也应该触发shouldComponentUpdate()。因此,shouldComponentUpdate()中的“ this.state”如何返回旧状态?
select * from q_factory;
有人知道吗?非常感谢。
答案 0 :(得分:2)
在更新组件上的任何内容(包括状态,如react docs强调的状态)之前,将调用此生命周期函数。
当接收到新的道具或状态时,shouldComponentUpdate()在渲染之前被调用。
因此,在调用shouldComponentUpdate
的时刻,新状态尚未应用,this.state
仍指向旧状态。
答案 1 :(得分:2)
最简单的方法是-在层次结构中某个元素上方发生更改时触发渲染。如果组件本身将在从上面启动的渲染周期内进行渲染,则取决于shouldComponentUpdate的返回值。
如果此方法返回true,则渲染将更改组件的当前状态,直到shouldComponentUpdate返回true为止。
因此,shouldComponentUpdate方法中的this.state具有较旧的状态,而参数中的nextState具有最新的状态。