基于当前存储的 Redux 操作的最佳实践

问题描述 投票:0回答:1

我正在尝试找出(但没有成功)根据 Redux 存储中的当前状态分派操作的建议。

我有一个设置,登录后,当前用户的 ID 存储在

auth.currentUser
下。

我还单独将用户的详细信息存储在

users[id]
下。

首先,如果用户详细信息已经可用,我希望我的

loadUser(id)
操作创建者不要费心进行 API 调用。其次,我想要一个
loadCurrentUser()
操作创建器,它可以根据存储的当前用户 ID 进行调用以获取用户。

执行此操作的最佳方法是什么?我知道我可以使用 redux thunk 相对轻松地做到这一点,但这是最好的还是有更好的方法?到目前为止,我已经避免使用它 - 使用 redux Promise 中间件来代替我的异步操作。

编辑:澄清我想做什么。

当我的组件加载时,它需要确保加载当前用户详细信息。它可以通过连接

loadCurrentUser()
进行调度来完成此操作。

首先,这个动作需要根据存储在商店其他地方的ID来加载用户。其次,只有当具有该 ID 的用户尚未在商店中时,它才需要执行此操作。

javascript redux
1个回答
0
投票

将商店的一部分专门用于保存用户数据并将其连接到任何相关的组件。从那里,您可以根据用户的状态拨打调度电话。生命周期方法是放置此类逻辑的常见位置。

componentWillMount() {
  if (this.props.user.id){ //assuming id is undefined if no user
    this.props.dispatchAction()
  }
}
© www.soinside.com 2019 - 2024. All rights reserved.