Когда вы используете React и Redux, где вы должны хранить объект XMLHttpRequest, чтобы иметь возможность отменить его? - PullRequest
0 голосов
/ 07 марта 2019

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

Если вы инициируете запрос непосредственно вМетод жизненного цикла компонента React, и вы можете сохранить ссылку на него в экземпляре компонента.

При использовании Redux в приложении React запрос, вероятно, будет инициирован внутри создателя действий Redux (возможно, с использованием промежуточного программного обеспечения, например redux-thunk).

В таком случае, где лучше всего хранить ссылку на объект XMLHttpRequest (или Observable и т. Д.), Чтобы ее можно было отменить, когда компонент, инициировавший запрос, был размонтирован?

Я могу придумать несколько вариантов, но я не уверен, что лучше:

  1. непосредственно в магазине Redux (обычно не рекомендуется )
  2. в глобальном Map (или, может быть, лучше, WeakMap, чтобы избежать утечек памяти), с ключом, на который компонент может ссылаться, либо хранящимся в Redux сохранить или вернуть в действии и сохранить в компоненте.
  3. сам объект запроса вернулся в действии и сохранен в компоненте.
  4. other?
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...