基于当前商店的Redux操作的最佳实践

时间:2017-11-21 19:43:19

标签: javascript redux redux-thunk redux-store

我试图解决 - 失败 - 根据Redux商店中的当前状态调度操作的建议。

我有一个设置,登录时,当前用户的ID存储在auth.currentUser下。

我还单独列出了users[id]下存储的用户的详细信息。

首先,如果用户详细信息已经可用,我希望我的loadUser(id)操作创建者不要打扰API调用。其次,我希望有一个loadCurrentUser()动作创建者根据存储的当前用户ID进行调用以获取用户。

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

编辑:澄清我想做的事。

加载组件时,需要确保加载当前用户详细信息。它将通过在loadCurrentUser()中连接来进行调度。

首先,此操作需要根据存储在其他位置的ID加载用户。其次,如果具有该ID的用户已经不在商店中,则只需要这样做。

1 个答案:

答案 0 :(得分:0)

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

componentWillMount() {
  if (this.props.user.id){ //assuming id is undefined if no user
    this.props.dispatchAction()
  }
}