Fix replaceReducer to work on the unlifted store

This commit is contained in:
Dan Abramov 2015-07-20 22:42:47 +03:00
parent 6b4465699f
commit acc8d6a1e0

View File

@ -191,7 +191,7 @@ function unliftState(liftedState) {
/** /**
* Unlifts the DevTools store to act like the app's store. * Unlifts the DevTools store to act like the app's store.
*/ */
function unliftStore(liftedStore) { function unliftStore(liftedStore, reducer) {
return { return {
...liftedStore, ...liftedStore,
devToolsStore: liftedStore, devToolsStore: liftedStore,
@ -201,6 +201,12 @@ function unliftStore(liftedStore) {
}, },
getState() { getState() {
return unliftState(liftedStore.getState()); return unliftState(liftedStore.getState());
},
getReducer() {
return reducer;
},
replaceReducer(nextReducer) {
liftedStore.replaceReducer(liftReducer(nextReducer));
} }
}; };
} }
@ -242,7 +248,7 @@ export default function devTools() {
return next => (reducer, initialState) => { return next => (reducer, initialState) => {
const liftedReducer = liftReducer(reducer, initialState); const liftedReducer = liftReducer(reducer, initialState);
const liftedStore = next(liftedReducer); const liftedStore = next(liftedReducer);
const store = unliftStore(liftedStore); const store = unliftStore(liftedStore, reducer);
return store; return store;
}; };
} }