Лучшая практика для действий Redux на основе текущего магазина

Я пытаюсь понять - безуспешно - каковы рекомендации по отправке действия на основе текущего состояния в хранилище Redux.

У меня есть настройки, где при входе в систему идентификатор текущего пользователя хранится в auth.currentUser,

У меня также есть отдельно данные пользователей, хранящиеся под users[id],

Во-первых, я хотел бы мой loadUser(id) создатель действий, чтобы не беспокоиться о вызовах API, если пользовательские данные уже доступны. Во-вторых, я хотел бы иметь loadCurrentUser() создатель действия, который выполняет вызов, чтобы получить пользователя на основе этого сохраненного идентификатора текущего пользователя.

Каков наилучший способ сделать это? Я знаю, что могу сделать это относительно легко, используя Redux Thunk, но это лучше или есть лучшие способы? До сих пор я избегал использовать это - вместо этого использовать промежуточное программное обеспечение с избыточным обещанием для моих асинхронных действий.

Изменить: чтобы уточнить, что я хочу сделать.

Когда мой компонент загружается, он должен гарантировать, что загружены текущие данные пользователя. Это будет сделано путем подключения loadCurrentUser() быть отправленным.

Во-первых, это действие должно загрузить пользователя на основе идентификатора, хранящегося в другом месте магазина. Во-вторых, он должен делать это только в том случае, если этого пользователя с таким идентификатором еще нет в магазине.

1 ответ

Посвятите часть своего магазина хранению пользовательских данных и подключите их к любому соответствующему компоненту. Оттуда вы можете отправлять вызовы в зависимости от статуса вашего пользователя. Методы жизненного цикла - обычное место для такой логики.

componentWillMount() {
  if (this.props.user.id){ //assuming id is undefined if no user
    this.props.dispatchAction()
  }
}
Другие вопросы по тегам