0

我正在尝试解决 - 未成功 - 根据 Redux 商店中的当前状态调度操作的建议是什么。

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

我还分别存储了用户的详细信息users[id]

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

这样做的最佳方法是什么?我知道我可以使用 redux thunk 相对轻松地做到这一点,但这是最好的还是有更好的方法?到目前为止,我一直避免使用它——而是使用 redux promise 中间件来进行异步操作。

编辑:澄清我想要做什么。

当我的组件加载时,它需要确保加载了当前的用户详细信息。它将通过接线loadCurrentUser()以进行分派来做到这一点。

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

4

1 回答 1

0

将商店的一部分用于保存用户数据并将其连接到任何相关的组件。从那里,您可以根据用户的状态进行调度呼叫。生命周期方法是放置这样逻辑的常见位置。

componentWillMount() {
  if (this.props.user.id){ //assuming id is undefined if no user
    this.props.dispatchAction()
  }
}
于 2017-11-21T19:57:55.573 回答