Ich mache Website mit React + Redux. bevor ich Middleware hinzugefügt habe, funktioniert die Anwendung gut, aber nach dem Hinzufügen wurde der Reducer nicht richtig verteilt.Anwendung Middleware auf Laden heißt Reducer nicht korrekt in Redux
dies ist mein Code:
import { createStore, applyMiddleware } from 'redux';
...
let createStoreWithMiddleware = applyMiddleware(logger)(createStore);
let store = createStoreWithMiddleware(appReducer);
store.dispatch(updateText('text changed.'));
und dies ist meine Aktion Schöpfer nur oben verwendet:
const UPDATE_TEXT = 'UPDATE_TEXT';
function updateText(text = '') {
return {
type: UPDATE_TEXT,
text
};
}
und das ist appReducer:
const defaultState = { text: 'default' };
function appReducer(state = defaultState, action) {
switch(action.type) {
case UPDATE_TEXT:
return Object.assign({}, state, {
text: action.text
});
default:
return state;
}
}
wenn ich entfernen Sie einfach applyMiddleware und create store direkt mit createStore wie folgt verwenden:
let store = createStore(appReducer);
es funktioniert gut! aber ich möchte wirklich Middlewares verwenden. was soll ich machen? jemand gimme eine Hand wird sehr schätzen!
Haben Sie 'createStore (appReducer, {}, applyMiddleware (Logger))' versucht? – Buzinas
ja. funktioniert nicht. – modernator
Ist die Logger-Middleware Redox-Logger? Wenn ja, importieren Sie es als 'createLogger' und setzen Sie dann 'const logger = createLogger()'? –