问题描述
在这里找不到关于此错误的任何信息:
Haven't been able to find anything around here regarding this error:
Store 没有有效的 reducer.确保传递给 combineReducers 的参数是一个值为 reducer 的对象."
"Store does not have a valid reducer. Make sure the argument passed to combineReducers is an object whose values are reducers."
我的减速机
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;
}
合路器
import { combineReducers } from 'redux';
import { FriendListReducer } from './FriendListReducer';
const rootReducer = combineReducers({
friends: FriendListReducer
});
export default rootReducer;
我的商店配置
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;
}
推荐答案
您的 import
语句不正确.要么将 import { Foo } from 'bar'
与 export Foo
一起使用,或 使用 import Foo from 'bar'
如果您使用 export default Foo
导出.
Your import
statement is incorrect. Either you use import { Foo } from 'bar'
together with export Foo
, or use import Foo from 'bar'
if you export with export default Foo
.
换句话说,将export default function FriendListReducer
改为export function FriendListReducer
,或者将import语句从import { FriendListReducer }
改为导入FriendListReducer
.
In other words, change either export default function FriendListReducer
to export function FriendListReducer
, or change the import statement from import { FriendListReducer }
to import FriendListReducer
.