我想在中间件链上添加redux-logger
。下面是我的代码:
import {createStore, combineReducers, applyMiddleware, compose} from 'redux';
import reducers from './index';
import createLogger from 'redux-logger';
import thunk from 'redux-thunk';
const logger = createLogger ({
log: 'info',
});
// create the global store
const store = compose (applyMiddleware (thunk, logger)) (createStore) (
reducers
);
export default store;
使用上面的代码,我会得到下面的错误:
applyMiddleware.js:39 Uncaught TypeError: middleware is not a function
at applyMiddleware.js:39
at Array.map (<anonymous>)
at applyMiddleware.js:38
如果我将应用中间件改成下面这一行,它就能正常工作:
applyMiddleware (thunk, createLogger)
但是我需要用一些特定的参数来创建记录器。如何将创建的记录器添加到中间件链中?
发布于 2018-08-01 05:27:22
import { applyMiddleware, compose, createStore } from 'redux';
import reducers from './index';
import thunk from 'redux-thunk';
import { logger } from 'redux-logger';
const composeEnhancers = typeof window === 'object' && window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ ? window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__({}) : compose;
const middlewareList = [thunk, logger]
const enhancer = composeEnhancers(
applyMiddleware(...middlewareList)
);
const store = createStore(reducers, enhancer);
export default store;
发布于 2017-12-14 13:02:36
如果你把你的商店改成这样,它应该会工作得很好:
const store = createStore(reducers, compose(applyMiddleware(thunk, logger)));
如果这不起作用,那就来看看这个问题。我认为它应该和上面的代码做同样的事情。
发布于 2017-12-14 13:26:11
已通过将import
更改为import {createLogger} from 'redux-logger';
修复此问题。
https://stackoverflow.com/questions/47805556
复制相似问题