react helmet create app reactjs redux reducers

reactjs - helmet - La tienda de Redux no tiene un reductor válido



react title (4)

No hemos podido encontrar nada aquí con respecto a este error "La tienda no tiene un reductor válido. Asegúrese de que el argumento pasado a combineReducers es un objeto cuyos valores son reductores.", Probablemente porque es demasiado estúpido.

Mi reductor

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; }

Combinador

import { combineReducers } from ''redux''; import { FriendListReducer } from ''./FriendListReducer''; const rootReducer = combineReducers({ friends: FriendListReducer }); export default rootReducer;

Mi configuración de tienda

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; }


../reducers/reducers? es un nombre extraño

De todos modos, parece que ../reducers/reducers no devuelve un reductor, si los reductores son un directorio, pon un index.js adentro, importa cada reductor y crea un reductor de raíz

import FriendListReducer from "./FriendListReducer" const rootReducer = combineReducers({ friendList : FriendListReducer }) export default rootReducer

Tendrás state.friendList en tu estado.

Espero que ayude


Parece que su función reductora de nivel superior usa una matriz como valor predeterminado. Redux espera que la parte superior de su estado sea un objeto, no una matriz. Intenta poner la matriz en una clave particular en ese objeto, como { friendList : [] } .


Su declaración de import es incorrecta. O bien usa la import { Foo } from ''bar'' junto con la export Foo , o usa import Foo from ''bar'' si exporta con la export default Foo .

En otras palabras, cambie export default function FriendListReducer para export function FriendListReducer , o cambie la instrucción de import { FriendListReducer } de la import { FriendListReducer } para import FriendListReducer .


Si el objeto está vacío

export default combineReducers({ })

Este error se mostrará.