Redux 无法根据他们的类型组织我的数据库



我的减速器有问题,我需要一些帮助,请:在我的有效载荷中,我发送{data,type},在我的reducer中,我想检查类型,以知道我将把有效载荷存储在哪个位置:

当检索完成时,我的Reducer看起来像:

case GRID_GET_ADDITIONNAL_CONFIG_SUCCESS:
switch (action.payload.type) {
case 'compo':
return {
...state,
loading: false,
links: {
...state.links,
compo: [...state.links.compo, action.payload.data],
},
};
case 'traca':
return {
...state,
loading: false,
links: {
...state.links,
traca: [...state.links.traca, action.payload.data],
},
};
case 'revers':
return {
...state,
loading: false,
links: {
...state.links,
revers: [...state.links.revers, action.payload.data],
},
};
case 'externaldoc':
return {
...state,
loading: false,
links: {
...state.links,
external: [...state.links.external, action.payload.data],
},
};
default:
return state;
}

我的输出应该是这样的:

ReducerName : {
loading : false;
links : {
compo : { Here an array with all data with 'compo' type},
traca : { Here an array with all data with 'traca' type},
revers : { Here an array with all data with 'revers' type},
externaldoc : { Here an array with all data with 'externaldoc' type},
}
}

我想我的开关箱里错过了一些东西,有人知道问题出在哪里吗?非常感谢。

您的调度函数应该是这样的。。。

dispatch({
type: "some type",
payload : { data } 
});

然后在你的交换机情况应该是这样的:

switch (action.type) {
case 'compo':
return {
...state,
loading: false,
links: {
...state.links,
compo: [...state.links.compo, action.payload.data],
},
};
case 'traca':
return {
...state,
loading: false,
links: {
...state.links,
traca: [...state.links.traca, action.payload.data],
},
};
case 'revers':
return {
...state,
loading: false,
links: {
...state.links,
revers: [...state.links.revers, action.payload.data],
},
};
case 'externaldoc':
return {
...state,
loading: false,
links: {
...state.links,
external: [...state.links.external, action.payload.data],
},
};
default:
return state;
} 

这是工业界普遍遵循的惯例。我希望你能理解一些要点。这必须解决您的问题,请尝试使用此。另外,尝试以这种方式实现调度功能。

最新更新