React Router и Redux, повторно активируя флаг `loading` - PullRequest
0 голосов
/ 04 августа 2020

Поскольку задействовано много кода, я опишу свою настройку абстрактно:

  • У меня есть response, redux и response-router, как описано в redux docs .
  • У меня есть динамический c маршрут (например, /users/:id). С redux у меня есть действие, которое вызывает сервер и возвращает информацию о пользователе для рендеринга.
  • По умолчанию в хранилище redux есть loading: true, а в ответ я использую loading ? <Spinner /> : <User />.
  • Действие redux, которое вызывает сервер, отправляет информацию плюс loading: false, так что <User /> отображается только после завершения вызова на сервер.

Я думаю, что это довольно нормально, однако у меня возникла следующая проблема: что, если я хочу перейти с /users/1 на /users/2? В магазине все еще есть loading: false, так как /users/1 загружено нормально, что мне делать, чтобы мое приложение знало, что я не должен пока отображать /users/2?

1 Ответ

0 голосов
/ 04 августа 2020

Я предлагаю посмотреть на id изменение в компоненте маршрута componentDidUpdate и, если оно изменилось, отправить событие redux, которое изменит состояние загрузки на true и при необходимости начнет загрузку этого пользователя.

...