gpt4 book ai didi

javascript - 在 redux 状态中包含 "view"函数

转载 作者:行者123 更新时间:2023-11-30 14:57:00 24 4
gpt4 key购买 nike

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

state = {
posts: new Map(),
comments: new Map()
},

这个状态结构简化了大部分 reducer 的情况。然而,在组件中,我反复需要执行以下操作来获取一组帖子或评论:

Array.from(this.props.posts.values())

this.props.posts 是映射到特定组件 props 的 redux 状态的帖子。

有没有办法将最后一个代码片段添加到状态中,就像关系数据库中的 View 一样?我试过了

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

但这似乎行不通。

最佳答案

参见 Structuring Reducers Redux 文档的部分,特别是关于 Normalizing State Shape 的部分.

我们建议典型的规范化状态部分应该像这样:

users : {
byId : {},
allIds : []
}

您还应该使用 memoized "selector" functions封装从存储状态导出数据的过程。

此外,我个人非常喜欢使用 Redux-ORM library作为管理 Redux 存储中规范化数据的抽象层。我的"Practical Redux" tutorial series演示如何使用它。

我在 Redux Reducers and Selectors 中有关于缩减器、选择器和规范化的其他文章的链接。我的部分React/Redux links list .

关于javascript - 在 redux 状态中包含 "view"函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47109286/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com