不應該在 componentWillUpdate 生命週期方法中直接修改 state 的值,因為這樣做可能導致錯誤。
在 componentWillUpdate 生命週期方法中,仍然可以訪問當前組件的 state 和 props,但是更改它們的值可能會導致不可預見的結果。這是因為該生命週期方法觸發時,組件的狀態正在被更新,如果在此時更改狀態會導致組件進入無限循環的狀態。
如果需要更改狀態,建議使用 setState() 方法,它應該在 componentWillUpdate() 方法調用結束以後,通過 componentDidUpdate() 生命週期方法進行操作,保證不會在當前更新週期中產生副作用。
在 componentDidUpdate 生命週期方法中,可以根據新的 state 和 props 做出響應,並調用 setState() 觸發新的更新週期。