1. 程式人生 > >複雜的react元件 setState不更新 - 使用函式作為setState的第一個引數

複雜的react元件 setState不更新 - 使用函式作為setState的第一個引數

寫了一個很複雜的stateful元件,
結果在某一個功能上,
觸發函式它卻不更新檢視了,
難以排查,

問題的關鍵在這行程式碼

this.setState({ value: doSomething(this.state.value) })

千萬不要在this.setState中使用this.state.xxx取值,
如果要使用this.state中的值,
使用函式作為第一個引數:

this.setState((prevState)=>({ value:  doSomething(prevState.value) })

over