Javascript 反应+;Redux:如何拥有相同状态的多个不同版本?

Javascript 反应+;Redux:如何拥有相同状态的多个不同版本?,javascript,reactjs,redux,Javascript,Reactjs,Redux,使用react redux,我有一个包含类别的状态。我需要此状态的2个“版本”: 所有类别:在过滤器和表单等的选择字段中使用,并且应始终包含每个类别 类别列表:位于类别管理页面上,是一个经过筛选/分页的类别列表 我怎样才能做到这一点而不必在我的州重复分类(我认为这违背了redux拥有“单一真相来源”的哲学) 这样做是不是最好的方式: { 类别:{ 全部:{ 1:{name:'Cat one'}, 2:{name:'第二类'}, 3:{name:'第三类'} }, 名单:[1,2] } }

使用react redux,我有一个包含类别的状态。我需要此状态的2个“版本”:

  • 所有类别:在过滤器和表单等的选择字段中使用,并且应始终包含每个类别
  • 类别列表:位于类别管理页面上,是一个经过筛选/分页的类别列表
我怎样才能做到这一点而不必在我的州重复分类(我认为这违背了redux拥有“单一真相来源”的哲学)

这样做是不是最好的方式:

{
类别:{
全部:{
1:{name:'Cat one'},
2:{name:'第二类'},
3:{name:'第三类'}
},
名单:[1,2]
}
}
那么我需要2个动作来获取类别?像
fetchAllCategories()
fetchlistcories(过滤器)

如果我在应用程序的其他地方需要一个具有不同标准的第三类列表,我是否只需要为每个列表和获取ID的操作不断向我的状态添加键呢


或者,即使同一类别出现在多个状态/还原器中,也最好有3个完全独立的状态/还原器,其中包含完整的类别对象?

听起来最好的解决方案是在存储中保留所有类别的单一列表,然后使用一个函数,该函数将过滤器作为参数接收,以便在您希望使用该列表的任何地方获取该列表的部分内容。