首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TypeError:中间件不是一个函数

TypeError:中间件不是一个函数
EN

Stack Overflow用户
提问于 2017-10-22 01:28:18
回答 9查看 33.3K关注 0票数 39

我正试图在我的reactjs应用程序中应用redux。我不能继续下去,因为这些错误:

我确信我已经安装了所需的所有依赖项。以下是我的package.json的相关部分

代码语言:javascript
复制
"dependencies": {
   "react-redux": "^5.0.6",
   "redux": "^3.7.2",
   "redux-logger": "^3.0.6",
   "redux-promise": "^0.5.3",
   "redux-thunk": "^2.2.0",
}

下面是实现redux的index.js的一部分

代码语言:javascript
复制
import { createStore, applyMiddleware } from 'redux';
import { Provider } from 'react-redux';
import thunkMiddleware from 'redux-thunk';
import createLogger from 'redux-logger';
import reducers from './reducers';

const logger = createLogger();
const store = createStore(reducers,
    applyMiddleware(
        thunkMiddleware, logger
    )
)

ReactDOM.render(
    <Provider store={store}>
        <App />
    </Provider>,
    document.getElementById('root')
);
EN

回答 9

Stack Overflow用户

回答已采纳

发布于 2017-10-22 01:44:58

根据文档,您混淆了redux-logger的用法

您需要导入特定的createLogger函数。

代码语言:javascript
复制
import { createLogger } from 'redux-logger'

const logger = createLogger({
  // ...options
});

或使用默认导入。

代码语言:javascript
复制
import logger from 'redux-logger'

然后你的代码应该没问题

代码语言:javascript
复制
const store = createStore(
  reducers,
  applyMiddleware(thunkMiddleware, logger)
)
票数 49
EN

Stack Overflow用户

发布于 2018-08-03 12:03:56

我得到了同样的错误TypeError:中间件不是一个函数。

代码语言:javascript
复制
import { createStore, combineReducers, applyMiddleware } from "redux";
import { createLogger } from "redux-logger";
import thunk from "redux-thunk";

import math from "./reducers/mathReducer";
import user from "./reducers/userReducer";

const logger = createLogger();

export default createStore(
  combineReducers({ math, user }),
  {},
  applyMiddleware(logger, thunk)
);

applyMiddleware(logger, thunk)代替applyMiddleware(logger, thunk.default)为我工作。

票数 3
EN

Stack Overflow用户

发布于 2020-02-12 17:36:51

代码语言:javascript
复制
import logger from 'redux-logger';
import thunk from 'redux-thunk';
import reduxPromiseMiddleware from 'redux-promise-middleware';
import { applyMiddleware, createStore } from 'redux';

const middleware = applyMiddleware(reduxPromiseMiddleware, thunk, logger);
const store = createStore(reducer, middleware);
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46869671

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档