React-Redux - 从组合减速器获取存储
React-Redux - getting store from combined-reducers
我一直在编写一些自定义中间件。我只想看到我的商店(作为不同状态的连锁店)。每个减速器都有自己的状态,结合起来应该给我我的商店。
import {createStore, applyMiddleware, compose} from 'redux';
import rootReducer from '../reducers';
import thunk from 'redux-thunk';
import {createLogger} from 'redux-logger';
import PouchDB from 'pouchdb';
const logger = createLogger({collapsed: true});
const customMiddleware = store => next => action => {
console.log(store.getState());
next(action);
}
export default function configureStore(initialState) {
return createStore(rootReducer, applyMiddleware(customMiddleware));
}
This is what I get now:
This is what I expect to get:
添加 isImmutable 后我尝试了这个:
const customMiddleware = store => next => action => {
const state = store.getState();
const storeTest = store.getState().toJS();
console.log(storeTest);
console.log(isImmutable(state) ? state.toJS() : state);
next(action);
}
storeTest 给出了想要的结果,但另一个日志没有。
Any idea how to fix this?
看起来你的 redux state 是一个 immutable Map
而不是一个普通的对象,所以你需要在记录它之前转换它:
import { isImmutable } from 'immutable';
..
const customMiddleware = store => next => action => {
const state = store.getState();
console.log(isImmutable(state) ? state.toJS() : state);
next(action);
};
我一直在编写一些自定义中间件。我只想看到我的商店(作为不同状态的连锁店)。每个减速器都有自己的状态,结合起来应该给我我的商店。
import {createStore, applyMiddleware, compose} from 'redux';
import rootReducer from '../reducers';
import thunk from 'redux-thunk';
import {createLogger} from 'redux-logger';
import PouchDB from 'pouchdb';
const logger = createLogger({collapsed: true});
const customMiddleware = store => next => action => {
console.log(store.getState());
next(action);
}
export default function configureStore(initialState) {
return createStore(rootReducer, applyMiddleware(customMiddleware));
}
This is what I get now:
This is what I expect to get:
添加 isImmutable 后我尝试了这个:
const customMiddleware = store => next => action => {
const state = store.getState();
const storeTest = store.getState().toJS();
console.log(storeTest);
console.log(isImmutable(state) ? state.toJS() : state);
next(action);
}
storeTest 给出了想要的结果,但另一个日志没有。 Any idea how to fix this?
看起来你的 redux state 是一个 immutable Map
而不是一个普通的对象,所以你需要在记录它之前转换它:
import { isImmutable } from 'immutable';
..
const customMiddleware = store => next => action => {
const state = store.getState();
console.log(isImmutable(state) ? state.toJS() : state);
next(action);
};