У меня есть
useEffect(() => {
setLoading(true);
axios
.get(url, {params})
.then(data => {
setData(data || []);
setLoading(false);
})
.catch(() => {
showToast('Load data failed!', 'error');
setLoading(false);
});
}, [params]);
Это дает мне
Предупреждение. Невозможно выполнить обновление состояния React на отключенном компоненте. Это неоперация, но она указывает на утечку памяти в вашем приложении. Чтобы исправить, отмените все подписки и асинхронные задачи в функции очистки useEffect.
Хорошо, вопрос НЕ КАК РЕШИТЬ ЭТО. Когда я использую setLoading (false) после обещания axios
, он работает нормально, но внутри обещания (например, выше) он всегда дает мне предупреждение. На самом деле я хочу знать, почему так происходит? Есть ли кто-нибудь, кто мог бы объяснить мне в двух словах поток кода выше (процесс, как код выше работает с предупреждением) и, возможно, дать некоторые рекомендации по использованию хуков.