【发布时间】:2017-09-04 23:12:21
【问题描述】:
我正在开发我的第一个 React/Redux 项目。一切都很顺利,然后我尝试创建一个新的减速器。我认为这是一个非常简单的问题,但是当我加载页面时,我收到一个错误“Reducer X 在初始化期间返回未定义”。跟踪表明这发生在 combineReducers() 中。我发现了几个类似的问题,但没有解决问题。
问题是他们在 createStore() 中使用了 initialState,而我没有这样做。
关于这个问题:Why does my Redux reducer think my state is undefined?
问题是减速器中缺少默认返回值,我有。
我的减速器代码如下。我在开始时有一个 console.log() 并且根本没有被调用。
reducers/reducer_which_sorter.js
import { SORT_CAMPERS } from '../actions/index';
export default function(state = null, action) {
console.log("action is", action);
switch(action.which) {
case 'recent':
case 'alltime':
return action.which;
break;
default:
return state;
}
return state;
}
reducers/index.js
import { combineReducers } from 'redux';
import Campers from './reducer_camper_list';
import ActiveSorter from './reducer_which_sorter';
const rootReducer = combineReducers({
campers: Campers,
activeSorter: ActiveSorter
});
export default rootReducer;
一切都编译得很好。 webpack 没有错误。我已经两次、三次和四次检查了我的文件路径。我没有看到任何错别字。谁能看到我在这里缺少的东西?
【问题讨论】:
-
在抛出错误的行上下断点并刷新页面。然后,当它在调试器中中断时 - 您将了解所发生情况的完整详细信息。
标签: javascript reactjs redux react-redux