Reactjs 实体中的Redux UI状态

Reactjs 实体中的Redux UI状态,reactjs,redux,react-redux,Reactjs,Redux,React Redux,我正在使用normalizer,并拥有我的state.entities.users分支 在我的SPA中,有一些页面可以查看用户,并跟踪/取消跟踪他们。当您获取用户或等待followAPI调用的结果时,我们将显示一个微调器 是否有最佳实践将UI相关状态置于何处 将其存储在实体中似乎是最简单的: { entities: { [1]: { name: "Bob", followed_by_user: true }, [2]: { isFe

我正在使用
normalizer
,并拥有我的
state.entities.users
分支

在我的SPA中,有一些页面可以查看用户,并跟踪/取消跟踪他们。当您获取用户或等待followAPI调用的结果时,我们将显示一个微调器

是否有最佳实践将UI相关状态置于何处

将其存储在
实体中似乎是最简单的:

{
  entities: {
    [1]: {
      name: "Bob",
      followed_by_user: true
    },
    [2]: {
      isFetching: true
    }
    [3]: {
      name: "Jane",
      isUpdatingFollowing: true
    }
  }
}

在这里存储这些数据有什么主要的缺点吗?否则,我将需要实现一个并行的缩减器形状,例如,
state.ui.pages.users
,在它们响应的操作方面有很多重叠(例如,两个缩减器必须分别响应
USER\u常量。USER\u FOLLOW\u SUCCESS
:一个更新
state.ui.pages.users[1].IsUpdateingFollowing=false
,一个用于更新
状态。实体[1]。后面是\u user=true
,而在上面的格式中,我可以一次性处理所有这些问题)。

使用redux时,应尽最大努力分离关注点。在您的域中,
users
是一个似乎独立于
ui
状态信息的概念,因此您不妨将它们放在不同的简化程序中

您可以按照自己喜欢的方式自由地构造减缩器,但请记住,让多个减缩器响应共享操作是完全正确的。动作并不总是与特定减速器紧密耦合,即使有时(通常)是这样


这是redux的创建者自己对一个类似问题的一个很好的回答:。

从关注点的角度分离使用redux的好处在于,多个还原者分别对同一个动作做出响应。否则你的减速器会越来越大。