不应该在 componentWillUpdate 生命周期方法中直接修改 state 的值,因为这样做可能导致错误。

componentWillUpdate 生命周期方法中,仍然可以访问当前组件的 stateprops,但是更改它们的值可能会导致不可预见的结果。这是因为该生命周期方法触发时,组件的状态正在被更新,如果在此时更改状态会导致组件进入无限循环的状态

如果需要更改状态,建议使用 setState() 方法,它应该在 componentWillUpdate() 方法调用结束以后,通过 componentDidUpdate() 生命周期方法进行操作,保证不会在当前更新周期中产生副作用。

componentDidUpdate 生命周期方法中,可以根据新的 stateprops 做出响应,并调用 setState() 触发新的更新周期。


ohoherror
19 声望1 粉丝