Я новичок в React Native, я загружаю звуки с сервера в приложение react native (expo), но когда я ухожу со страницы (например, go назад на предыдущую страницу), я получаю сообщение об ошибке Can ' t выполнить обновление состояния React для размонтированного компонента. Это не операция, но она указывает на утечку памяти в вашем приложении. Чтобы исправить, отмените все подписки и асинхронные задачи в функции очистки useEffect
Код ниже, я пытаюсь выгрузить аудио при использовании метода очистки useEffect, который останавливает звук, когда я ухожу, но я все равно получаю это предупреждение.
const [audioFile, setAudioFile] = useState(null);
useEffect(() => {
return () => {
if (audioFile !== null) {
audioFile.unloadAsync();
}
};
}, [audioFile]);
//this function is called when sound file uri is loaded from database and assigned to audioFileToLoad
loadAudio = async () => {
try {
const soundObject = new Audio.Sound();
soundObject.setOnPlaybackStatusUpdate(onPlaybackStatusUpdate);
await soundObject.loadAsync({ uri: audioFileToLoad });
setAudioFile(soundObject);
} catch (error) {
// An error occurred!
}
};