這個問題困擾我?guī)滋炝?,一直解決不了,各種嘗試,才知道自己還差的很遠(yuǎn)。
首先,上面那個標(biāo)題是錯的 錯的 錯的,之所以這樣寫是方便搜索。
之所以沒有快速發(fā)現(xiàn)問題所在,是因為自己打印的state,我只打印了next state,沒有看到pre state的變化。集成了redux-logger才看出來,所以一個直觀的日志還是需要的。

深度錄屏_選擇區(qū)域_20180303160837.gif
代碼是這個樣子的:

TIM截圖20180303153044.png
然后看看狀態(tài):

TIM截圖20180303152939.png
從這個狀態(tài)來看,我們把之前和之后狀態(tài)都修改了,所以組件沒有更新。在代碼里面我們直接對上一個state進(jìn)行了修改,所以這里的解決辦法就是拷貝一份數(shù)據(jù)進(jìn)行修改
修改如下:

TIM圖片20180303163709.png
我這里用了JSON方法,也可以通過其他的方式進(jìn)行拷貝。

深度錄屏_選擇區(qū)域_20180303161117.gif
最后一句話:pre state 和 next state對比變化組件才會更新