reactjs - Redux: the previous state received by the reducer has unexpected type of "Function" -
when add middleware chrome extension, reducers stop working on site (but chrome/redux debug tool works) + following error in console:
the previous state received reducer has unexpected type of "function". expected argument object following keys: "auth", "common", "home"
here code:
import { applymiddleware, createstore } 'redux'; import { promisemiddleware, localstoragemiddleware } './middleware'; import reducer './reducer'; const middleware = applymiddleware(promisemiddleware, localstoragemiddleware); const store = createstore(reducer, middleware, window.devtoolsextension ? window.devtoolsextension() : f => f); export default store;
if remove chrome part:
,window.devtoolsextension ? window.devtoolsextension() : f => f
if works normal again.
createstore
takes 3 arguments. if second argument function assumes second argument store enhancer. if object or there 3 arguments present assumes argument initial state. see here.
your middleware variable store enhancer , chrome extension enhancer:
window.devtoolsextension ? window.devtoolsextension() : f => f
you have compose both in single function:
import { applymiddleware, createstore, compose } 'redux'; import { promisemiddleware, localstoragemiddleware } './middleware'; import reducer './reducer'; const middleware = applymiddleware(promisemiddleware, localstoragemiddleware); const store = createstore( reducer, compose(middleware, window.devtoolsextension ? window.devtoolsextension() : f => f) ); export default store;
documentation can found here.
Comments
Post a Comment