Comment ajouter plusieurs middleware à Redux?
J'ai un middleware déjà branché, redux-thunk, et j'aimerais en ajouter un autre, redux-logger.
Comment puis-je le configurer pour que mon application utilise les deux middleware? J'ai essayé de passer un tableau de [ReduxThunk, logger]
mais cela n'a pas fonctionné.
Code:
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')
);
37
demandé sur
doctopus
2017-05-13 19:03:30
3 réponses
ApplyMiddleware prend chaque morceau de middleware comme un nouvel argument (pas un tableau). Donc, il suffit de passer dans chaque morceau de middleware que vous souhaitez.
const createStoreWithMiddleware = applyMiddleware(ReduxThunk, logger)(createStore);
55
répondu
Andy Noelker
2017-05-13 16:06:08
La réponse d'andy est bonne, mais, considérez vos middlewares de plus en plus, les codes ci-dessous seront meilleurs:
const middlewares = [ReduxThunk, logger]
applyMiddleware(...middlewares)
10
répondu
chen Jacky
2018-05-06 09:07:19
applyMiddleware
devrait passer dans createStore comme deuxième paramètre. applyMiddleware
peut avoir plusieurs middlewares comme arguments.
const store = createStore(reducers, applyMiddleware(ReduxThunk, logger));
ReactDOM.render(
<Provider store={store}>
<App />
</Provider>,
document.querySelector('#app')
);
6
répondu
Tharaka Wijebandara
2017-05-13 16:11:27