Рекомендуется отменить любые ожидающие запросы, если они больше не нужны, например, если компонент, зависящий от запроса, отключен до его завершения.
Если вы инициируете запрос непосредственно вМетод жизненного цикла компонента React, и вы можете сохранить ссылку на него в экземпляре компонента.
При использовании Redux в приложении React запрос, вероятно, будет инициирован внутри создателя действий Redux (возможно, с использованием промежуточного программного обеспечения, например redux-thunk
).
В таком случае, где лучше всего хранить ссылку на объект XMLHttpRequest
(или Observable
и т. Д.), Чтобы ее можно было отменить, когда компонент, инициировавший запрос, был размонтирован?
Я могу придумать несколько вариантов, но я не уверен, что лучше:
- непосредственно в магазине Redux (обычно не рекомендуется )
- в глобальном
Map
(или, может быть, лучше, WeakMap
, чтобы избежать утечек памяти), с ключом, на который компонент может ссылаться, либо хранящимся в Redux сохранить или вернуть в действии и сохранить в компоненте. - сам объект запроса вернулся в действии и сохранен в компоненте.
- other?