首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何向Redux添加多个中间件?

如何向Redux添加多个中间件?
EN

Stack Overflow用户
提问于 2017-05-13 16:03:30
回答 6查看 44.7K关注 0票数 77

我已经插入了一个中间件,redux-thunk,我想添加另一个中间件,redux-logger

我如何配置它,使我的应用程序使用这两块中间件?我试着传递一个[ReduxThunk, logger]数组,但这不起作用。

代码:

代码语言:javascript
复制
import React from 'react';
import ReactDOM from 'react-dom';
import { Provider } from 'react-redux';
import { createStore, applyMiddleware } from 'redux';
import ReduxThunk from 'redux-thunk';
import logger from 'redux-logger';

import App from './components/app';
import reducers from './reducers';
require('./style.scss');

const createStoreWithMiddleware = applyMiddleware(ReduxThunk)(createStore);

ReactDOM.render(
  <Provider store={createStoreWithMiddleware(reducers)}>
    <App />
  </Provider>,
  document.querySelector('#app')
);
EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2017-05-13 16:06:08

applyMiddleware将每一块中间件作为新的参数(而不是数组)。因此,只需传递您想要的每一个中间件。

代码语言:javascript
复制
const createStoreWithMiddleware = applyMiddleware(ReduxThunk, logger)(createStore);
票数 123
EN

Stack Overflow用户

发布于 2018-05-06 09:07:19

安迪的回答是好的,但是,考虑到你的中间件在增长,下面的代码会更好:

代码语言:javascript
复制
const middlewares = [ReduxThunk, logger]
applyMiddleware(...middlewares)
票数 31
EN

Stack Overflow用户

发布于 2017-05-13 16:11:27

applyMiddleware应该作为第二个参数传入createStore。applyMiddleware可以有多个中间件作为参数。

代码语言:javascript
复制
const store = createStore(reducers, applyMiddleware(ReduxThunk, logger));

ReactDOM.render(
  <Provider store={store}>
    <App />
  </Provider>,
  document.querySelector('#app')
);
票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43955199

复制
相关文章

相似问题

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