gpt4 book ai didi

reactjs - 实体中的 Redux UI 状态

转载 作者:行者123 更新时间:2023-12-03 13:51:30 24 4
gpt4 key购买 nike

我正在使用 normalizr 并拥有我的 state.entities.users 分支。

在我的 SPA 中,有一些页面可以查看用户以及关注/取消关注他们。当您获取用户或等待关注 API 调用的结果时,我们会显示一个微调框。

是否存在放置 UI 相关状态的最佳实践?

将其存储在 entities 对象中似乎是最简单的:

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

在这里存储这些数据有什么主要缺点吗?否则我需要实现一个并行 reducer 形状,例如state.ui.pages.users 在它们响应的操作方面有很多重叠(例如,两个 reducer 都必须分别响应 USER_CONSTANTS.USER_FOLLOW_SUCCESS:一到更新 state.ui.pages.users[1].isUpdatingFollowing = false,并更新 state.entities[1].followed_by_user = true,而在上面格式我可以一次性处理所有这些)。

最佳答案

当使用 redux 时,你应该尽力分离关注点。在您的域中,users 是一个似乎独立于有关 ui 状态的信息的概念,因此您不妨将它们放在不同的 reducer 中。

您可以按照自己喜欢的方式自由构建您的 reducer ,但请记住,让多个 reducer 响应共享操作是完全可以的。 Action 并不总是与特定的 reducer 紧密耦合,尽管有时(通常)它们是紧密耦合的。

这是 redux 的创建者本人对类似问题的一个很好的回答:https://github.com/reactjs/redux/issues/601#issuecomment-133519377 .

关于reactjs - 实体中的 Redux UI 状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39146627/

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