Non sono stato in grado di trovare nulla intorno a questo errore "Il negozio non ha un riduttore valido. Assicurati che l'argomento passato a combineReducers è un oggetto i cui valori sono riduttori.", probabilmente perché è troppo stupido.Il redux store non ha un riduttore valido
mio riduttore
export default function FriendListReducer(state = {friends : []}, action) {
switch (action.type) {
case 'ADD_FRIEND':
return [
{ friends : action.payload.friend }, ...state.friends
]
default:
return state;
}
return state;
}
combinatore
import { combineReducers } from 'redux';
import { FriendListReducer } from './FriendListReducer';
const rootReducer = combineReducers({
friends: FriendListReducer
});
export default rootReducer;
Il mio negozio config
import { applyMiddleware, createStore } from 'redux';
import thunkMiddleware from 'redux-thunk';
import createLogger from 'redux-logger';
import rootReducer from '../reducers/reducers';
export default function configureStore(initialState = { friends: [] }) {
const logger = createLogger({
collapsed: true,
predicate:() =>
process.env.NODE_ENV === `development`, // eslint-disable-line no-unused-vars
});
const middleware = applyMiddleware(thunkMiddleware, logger);
const store = middleware(createStore)(rootReducer, initialState);
if (module.hot) {
// Enable Webpack hot module replacement for reducers
module.hot.accept('../reducers/reducers',() => {
const nextRootReducer = require('../reducers/reducers').default;
store.replaceReducer(nextRootReducer);
});
}
return store;
}
modificato in oggetto e continua a ricevere lo stesso errore – chrysillo
Il valore "initialState" che si sta passando all'archivio non corrisponde alla struttura che si sta creando utilizzando 'combineReducers'. Stai dando a 'combinedReducers' un campo chiamato' FriendListReducer', ma lo stato iniziale del negozio ha 'friends'. Devi far corrispondere quelli in un modo o nell'altro. Dal momento che non corrispondono, hai ancora lo stesso problema. – markerikson
Ho aggiornato il codice e sto ancora ottenendo lo stesso errore, codice aggiornato qui – chrysillo