這個問題困擾我幾天了,一直解決不了,各種嘗試,才知道自己還差的很遠。
首先,上面那個標題是錯的 錯的 錯的,之所以這樣寫是方便搜索。
之所以沒有快速發現問題所在,是因為自己打印的state,我只打印了next state,沒有看到pre state的變化。集成了redux-logger才看出來,所以一個直觀的日志還是需要的。
深度錄屏_選擇區域_20180303160837.gif
代碼是這個樣子的:
TIM截圖20180303153044.png
然后看看狀態:
TIM截圖20180303152939.png
從這個狀態來看,我們把之前和之后狀態都修改了,所以組件沒有更新。在代碼里面我們直接對上一個state進行了修改,所以這里的解決辦法就是拷貝一份數據進行修改
修改如下:
TIM圖片20180303163709.png
我這里用了JSON方法,也可以通過其他的方式進行拷貝。
深度錄屏_選擇區域_20180303161117.gif
最后一句話:pre state 和 next state對比變化組件才會更新