首页 > 解决方案 > 如何在 React & Flux/Redux/Alt 中构建多个相关实体?

问题描述

我认为适用于任何状态容器的架构问题。我现在使用 Alt,过去使用过 Redux,但总的来说......

假设我有博客文章、用户和评论。在数据库中,我将此规范化存储为博客帖子表、用户表和评论表,但博客帖子和用户都可以通过连接表关联评论。

在 React 方面,我还为所有三个实体(BlogPostActions、BlogPostReducer 等)创建了操作和缩减程序。现在,为了提供一个包含 BlogPosts 和 Comments 的页面,我需要获取 BlogPosts,然后使用类似redux-thunk.

现在我的问题是 - 如果我有一个显示 BlogPosts 和 Users 的页面并且他们都有评论,我该如何构建 Comments Reducer/Store?我天真的解决方案通常是设置一个评论列表——动作调度的结果。这变成了一个无限循环——BlogPosts 请求评论,用户请求评论,无论哪个获胜都会触发道具更改并因此触发重新渲染,从而重新开始整个事情。

我可以想到几个解决方案——我很想将评论分成 BlogComments 和 UserComments,尽管 redux 文档建议不要这样做。我宁愿只保留一个 Comments 存储,并且在 Action 调度中只获取我知道我还没有获取的 Comments。最终,我的单个评论商店将拥有我需要的所有 UserComments 和 BlogComments,并且将停止触发重新呈现。我唯一的问题是在 Alt 中,我似乎无法访问我的 Action 中的状态,但我记得在 Redux 中有这个。

其中哪一个是更惯用的 Flux/Redux/Alt-y?

标签: reactjsreduxreact-reduxfluxalt

解决方案


推荐阅读