有store.js如何安裝所有減速器? reactjs
import { routerMiddleware } from 'react-router-redux';
import { createStore, applyMiddleware, compose } from 'redux';
import thunk from 'redux-thunk';
import axios from 'axios';
import chalk from 'chalk';
import Immutable from 'immutable';
import type { Store } from '../types';
import rootReducer from './reducers';
export default (history: Object, initialState: Object = {}): Store => {
const middlewares = [
thunk.withExtraArgument(axios),
routerMiddleware(history),
];
const enhancers = [
applyMiddleware(...middlewares),
__DEV__ && typeof window === 'object' && typeof window.devToolsExtension !== 'undefined' ?
window.devToolsExtension({
serialize: {
immutable: Immutable
}
}) : f => f,
];
const devToolEnhancers = __DEV__ && typeof window === 'object' && typeof window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ !== 'undefined' ?
window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__({
serialize: {
immutable: Immutable
}
}) : f => f;
const immutableState = Immutable.fromJS(initialState)
const store: Store = createStore(rootReducer, immutableState, compose(...enhancers));
if (module.hot) {
// Enable Webpack hot module replacement for reducers
module.hot.accept('./reducers',() => {
try {
const nextReducer = require('./reducers').default;
store.replaceReducer(nextReducer);
} catch (error) {
console.error(chalk.red(`==> Reducer hot reloading error ${error}`));
}
});
}
return store;
};
我需要讓所有減速
的的console.log的文件,我發現這個代碼:
const logger = store => next => action => {
console.group(action.type)
console.info('dispatching', action)
let result = next(action)
console.log('next state', store.getState())
console.groupEnd(action.type)
return result
}
let createStoreWithMiddleware = applyMiddleware(logger)(createStore)
let yourApp = combineReducers(reducers)
let store = createStoreWithMiddleware(yourApp)
,但我不知道如何結合起來。需要安慰previos和下一個rudecer狀態。嘗試許多變化,但不能做到這一點
你可以嘗試用「終極版開發工具」播放;) –
使用https://github.com/evgenyrodionov/redux-logger – lux