TypeError:中间件不是函数

Jam*_*lda 22 reactjs redux redux-thunk react-redux

我正在尝试在我的reactjs应用程序中应用redux.由于这些错误,我无法继续:

在此输入图像描述

在此输入图像描述

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

"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",
}
Run Code Online (Sandbox Code Playgroud)

这是我实现redux的index.js的一部分

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')
);
Run Code Online (Sandbox Code Playgroud)

Bal*_*des 32

根据文档,你混淆了使用redux-logger

您需要导入特定createLogger功能

import { createLogger } from 'redux-logger'

const logger = createLogger({
  // ...options
});
Run Code Online (Sandbox Code Playgroud)

或使用默认导入

import logger from 'redux-logger'
Run Code Online (Sandbox Code Playgroud)

然后你的代码应该没问题

const store = createStore(
  reducers,
  applyMiddleware(thunkMiddleware, logger)
)
Run Code Online (Sandbox Code Playgroud)


小智 5

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);
Run Code Online (Sandbox Code Playgroud)