combineReducers VS Uncaught Error: Reducer "" returned undefined during initialization


在使用了combineReducers的場景下,要注意reducers里的state初始化處理,否則到combineReducers函數過程中會拋出異常,原因是combineReducers內部進行了每個reducer斷言。

跟蹤源碼可知原理如下:

繼續debug,進入assertReducerShape

可見,在此處,對每個rducer進行斷言處理:傳入'undefined'的state和在buisniess type之外的actionType,使每個reducer函數走default分支,返回最終值,如果該值為undefined則認為你的reducer斷言失敗,是非安全的。

因此,在使用了combinedReducer的情況下,要注意reducer的初始值處理:

 

This is the end.

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM