sto ottenendo l'errore Unexpected key "characters" found in initialState argument passed to createStore. Expected to find one of the known reducer keys instead: "marvelReducer", "routing". Unexpected keys will be ignored.
Reagire Redux chiave inaspettato passata per creare negozio
rootReducer:
import { combineReducers } from 'redux';
import { routerReducer } from 'react-router-redux';
import marvelReducer from './marvelReducer';
const rootReducer = combineReducers({
marvelReducer,
routing: routerReducer
});
export default rootReducer;
marvelReducer:
import { FETCH_MARVEL } from '../constants/constants';
import objectAssign from 'object-assign';
export default function marvelReducer(state = [], action) {
switch (action.type) {
case FETCH_MARVEL:
return objectAssign({}, state, {characters: action.data});
default:
return state;
}
}
negozio:
import { createStore } from 'redux';
import { syncHistoryWithStore } from 'react-router-redux';
import { browserHistory } from 'react-router';
import rootReducer from '../reducers/index';
const initialState = {
characters: []
};
const store = createStore(rootReducer, initialState);
export const history = syncHistoryWithStore(browserHistory, store);
if (module.hot) {
module.hot.accept('../reducers/',() => {
const nextRootReducer = require('../reducers/index').default;
store.replaceReducer(nextRootReducer);
});
}
export default store;
I avere un codice molto simile in un'altra applicazione e sta funzionando bene. Non so che cosa sta succedendo qui
impostazione dello stato iniziale come lo stesso nome attributo del riduttore, finisce per ignorare il riduttore? – erichardson30
@ erichardson30 Non lo fa - semplicemente imposta uno stato iniziale, non sovrascrive il riduttore. Ecco un altro piccolo consiglio da [i documenti redux] (http://redux.js.org/docs/api/createStore.html) '[initialState] (any): Lo stato iniziale. Opzionalmente è possibile specificarlo per idratare lo stato dal server in applicazioni universali o per ripristinare una sessione utente precedentemente serializzata. Se hai prodotto un riduttore con CombinazioneRiduttori, questo deve essere un oggetto semplice con la stessa forma dei tasti passati ad esso. Altrimenti, sei libero di passare tutto ciò che il tuo riduttore può capire. –
"C'è una piccola discrepanza tra ciò che si imposta come lo stato iniziale del negozio e ciò che si dice al negozio di aspettarsi quale dovrebbe essere lo stato iniziale del negozio" Non riesco davvero a seguire questa affermazione, puoi elaborare un po 'più chiaro? – stevematdavies