Я действительно запутался, как решить проблему отмены асинхронного процесса при переходе на новую вкладку.Если вы запустите асинхронный запрос на странице, но затем перейдете на новую вкладку до его завершения, вы получите предупреждение: «Невозможно вызвать setState (или forceUpdate) для неустановленного компонента» *
Однако,смена экранов с помощью навигатора вкладок никогда не приведет к отключению воли, поэтому нет места для отмены каких-либо операций.Стек Навигатор и переключатель навигатор запускают это, и я могу отменить любые операции просто отлично.Я буквально собираюсь построить свою собственную нижнюю навигацию, чтобы обойти это.
Этот пример - способ взломать IMHO:
ДА, я попробовал подход this.isMounting (кстати, теперь вы получите предупреждение isMounting (...) устарело, если вы используетечто) Да, я использовал метод willupdate, но PureComponent должен удалить этот «хак».
Это действительно похоже на ошибку, и я не знаю, как получить нижнюю навигацию и получить страницу с некоторыми результатами выборки.
// Хакерский пример в асинхронном методе
try {
let response = await fetch(
'https://your/rest/endpoint/with/json'
);
if (response.ok) {
if (!_isMounted) {
console.log('oops! ' + SCREEN_NAME + ' was unmounted before async');
return; // just bail if component is no longer mounted
}
let responseJson = await response.json();
`