Javascript 包括「;“视图”;处于redux状态的函数

Javascript 包括「;“视图”;处于redux状态的函数,javascript,reactjs,redux,Javascript,Reactjs,Redux,在处理帖子和评论的应用程序中,我希望将我的状态保持在一个平面的、规范化的结构中,以便尽可能灵活。具体来说,我希望将所有帖子和评论作为键值对,其中键是帖子或评论的id,值是帖子或评论。也就是说,我的状态如下: state = { posts: new Map(), comments: new Map() }, 这种状态结构简化了大多数减速器壳体。然而,在组件中,我需要反复执行以下操作才能获得一系列帖子或评论: Array.from(this.props.posts.values(

在处理帖子和评论的应用程序中,我希望将我的状态保持在一个平面的、规范化的结构中,以便尽可能灵活。具体来说,我希望将所有帖子和评论作为键值对,其中键是帖子或评论的id,值是帖子或评论。也就是说,我的状态如下:

state = {
    posts: new Map(),
    comments: new Map()
},
这种状态结构简化了大多数减速器壳体。然而,在组件中,我需要反复执行以下操作才能获得一系列帖子或评论:

Array.from(this.props.posts.values())
其中
this.props.posts
是redux州映射到特定组件的props的posts

是否有一种方法可以将最后一个代码段添加到状态,就像关系数据库中的视图一样?我试过了

state = {
    posts: new Map(),
    comments: new Map(),
    postArray: () => { return Array.from(posts.values()) }
},

但这似乎不起作用。

您可以使用高阶组件包装您的组件,并在其中注入额外的道具。我建议您查看
重新组合
库,以便以简洁的方式执行此操作。

请参阅Redux文档的一节,特别是关于的一节

我们建议典型的规范化状态部分如下所示:

users : {
    byId : {},
    allIds : []
}
您还应该使用来封装从存储状态派生数据的过程

另外,我个人非常喜欢使用作为在Redux存储中管理规范化数据的抽象层。我的示例演示了如何使用它

在我的部分中,我有关于减缩器、选择器和规范化的其他文章的链接