Не удается выполнить обновление состояния React при ошибке отключенного компонента при переходе - PullRequest
0 голосов
/ 06 августа 2020

Я новичок в 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!
        }
    };
...