-2
import {FETCH_OBSERVATION} from '../actions/index';
import {DELETE_OBSERVATION} from '../actions/index';
export default function(state={all:[],count:null},action){
switch (action.type) {
case FETCH_OBSERVATION:
console.log("data for fetch observationCount",action.payload.data.model.observationInstanceList);
return{
all:state.all.concat(action.payload.data.model.observationInstanceList),
count:action.payload.data.model.observationCount
}
case DELETE_OBSERVATION:
return state.all=[];
default:
return state
}
return state;
}
我使用行动/索引文件中的动作创建者定义从API中提取数据。 有人可以告诉我为什么state.all.concat没有定义?想要返回不同的值从相同reducer在reactjs
错误是这个样子
Cannot read property 'concat' of undefined
at ./src/reducers/reducer_observation.js.__webpack_exports__.a (reducer_observation.js:10)
at combination (combineReducers.js:120)
at dispatch (createStore.js:165)
at redux-logger.js:1
at index.js:28
at dispatch (applyMiddleware.js:35)
at action.payload.then._extends.payload (index.js:25)
at <anonymous>
我结合减速这个样子
import { combineReducers } from 'redux';
import SpeciesChartReducer from './reducer_chart_data';
import ObservationReducer from './reducer_observation';
import TaxonReducer from './reducer_taxon_list';
import UserGroupNames from './reducer_fetch_userGroup';
import UserGroupObservations from './reducer_fetch_groupobservations';
import HomeTotalCount from './reducer_home_total_count';
const rootReducer = combineReducers({
Observation:ObservationReducer,
ChartData:SpeciesChartReducer,
treeData:TaxonReducer,
UserGroupNames:UserGroupNames,
UserGroupObservations:UserGroupObservations,
HomeTotalCount:HomeTotalCount
});
export default rootReducer;
你到底用'的console.log thing'是什么意思?这个:'action.payload.data.model.observationInstanceList'? – Denialos
用'return state.all = [];'你正在改变状态并返回一个不同形状的状态。我很确定那不是你想要做的。您可能想要再次返回默认状态。最好把它解压到'const'。例如:'const DEFAULT_STATE = {all:[],count:null};'在reducer外部,内部:'function(state = DEFAULT_STATE,action){'及以后:case DELETE_OBSERVATION:return DEFAULT_STATE;'。 – Yoshi
其实我在观察页面上实现过滤器。因此,一旦新的过滤器应用我想删除显示的观察,并加载新的观察,这就是为什么我做这个“state.all:[]”后删除前一个。 如果你有任何想法,请分享考虑上述情况。 我正在开发的项目是OpenSource,你可以在这里看看功能网站。 http://indiabiodiversity.org/observation/list?view=list 上面的页面是我想要实现的。 – user2903536