Я создаю React Native
приложение. Мой компонент API содержит асинхронный вызов c, который я хочу остановить. Для этой цели я использую axios.CancelToken
:.
const source = axios.CancelToken.source();
async getProductCategoriesRequest() {
try {
let response = await catalog.get(`category`, {
cancelToken: source.token,
});
return response.data;
} catch (error) {
if (axios.isCancel(error)) {
console.log(error)
return Promise.reject();
}
}
}
Из моего компонента я вызываю requestCancellationHandler
на onPress
:
const requestCancellationHandler = () => {
source.cancel('API request is being canceled');
props.resetState();
};
Все работает отлично, кроме как я не могу сделать еще один звонок, если я не перезагрузить приложение. Я продолжаю получать Cancel {message: "API request is being canceled"}
в запросе API Catch. Простая перезагрузка страницы позволяет мне сделать еще один асин c вызов
Как я могу решить эту проблему без перезагрузки?