Reactjs 使用redux存储规范化数据
我希望我的还原程序在状态中填充根对象,独立于它们操作的状态片 我已经找到了很多页面来解释normalizer有多棒,但是没有人解释在哪里以及如何存储这些规范化数据 问题是:Reactjs 使用redux存储规范化数据,reactjs,redux,reducers,normalizr,Reactjs,Redux,Reducers,Normalizr,我希望我的还原程序在状态中填充根对象,独立于它们操作的状态片 我已经找到了很多页面来解释normalizer有多棒,但是没有人解释在哪里以及如何存储这些规范化数据 问题是: 我是不是在尝试做一些不寻常的错事 如何修改根状态对象中的状态,因为还原程序只对数据的一部分进行操作 因此: const videos = (state, action) => { switch (action.type) { case 'LOAD_VIDEOS': { return ....
const videos = (state, action) => {
switch (action.type) {
case 'LOAD_VIDEOS': {
return ....
}
}
}
不仅应使用规范化数据填充
state.videos
(使用视频id数组),还应使用规范化数据填充state.database.videos
(以及其他键,如果视频包含其他实体)。如果减速机需要处理多个状态片,请为其提供整个状态
如果您使用的是组合减速器()
,您可以将其包装起来,这样您就可以保留组合减速器的优点,并且您仍然可以拥有在全状态下工作的减速器:
function somePartOfState(state, action) {
// ...
}
function otherPartOfState(state, action) {
// ...
}
function fullState(state, action) {
// ...
}
const combined = combineReducers({
somePartOfState,
otherPartOfState
});
export function rootReducer(state, action) {
// call the combined reducers,
// then pass the resulting state to the fullState reducer
return fullState(combined(state, action), action);
}
回答得好。事实上,我没有特殊的要求,只是一个普通的应用程序,所以我想知道为什么这种方法没有在任何博客、文档或教程上公布。谢谢。事实上,在移动到组合还原器之前,从一个普通函数开始,并解释说combinereducer()只是一个助手:“combinereducer()所做的只是生成一个函数,用根据键选择的状态片调用还原器,并将其结果再次组合到单个对象中。这不是魔术。”