Dies ist, wie ich meinen Speicher erstellenredux devtools Uncaught Fehler: Aktionen müssen einfache Objekte sein. Verwenden Sie benutzerdefinierte Middleware für Asynchron-Aktionen
import { createStore, applyMiddleware } from 'redux';
import thunkMiddleware from 'redux-thunk';
import { routerMiddleware } from 'react-router-redux';
import rootReducer from '../reducers';
const debugware = [];
if (process.env.NODE_ENV !== 'production') {
const createLogger = require('redux-logger');
debugware.push(createLogger({
collapsed: true
}));
}
export default function configureStore(history, initialState) {
const store = createStore(
rootReducer,
initialState,
window.devToolsExtension ? window.devToolsExtension() : f => f,
applyMiddleware(thunkMiddleware, routerMiddleware(history), ...debugware),
);
if (module.hot) {
// Enable Webpack hot module replacement for reducers
module.hot.accept('../reducers',() => {
const nextRootReducer = require('../reducers/index').default;
store.replaceReducer(nextRootReducer);
});
}
return store;
}
Aber meine App nicht mehr funktioniert und ich kann finden, warum. Irgendein Vorschlag bitte.
Wie soll ich den gleichen Code ohne 'Middleware' und' initialState' schreiben? –
Sie können initialState durch ein leeres Objekt wie {} ersetzen, aber um Async-Aktionen zu verarbeiten, benötigen Sie eine benutzerdefinierte Middleware, Sie könnten Ihre eigene schreiben oder thunkMiddleware von redux-thunk package – steppefox
Ich habe es geschafft, compose mit nur einem Argument: ' window.devToolsExtension'. Guter Trick mit 'initalState' als leeres Objekt. In der Zwischenzeit habe ich bereits eine Saga-Middleware installiert. –