так понимаю все компоненты автоматически unmount, но таймеры дальше работают, каким образом выключить таймер?
я так понимаю в componentWillUnmount() любого компонента на странице пихать?
Все верно. С хуками это еще удобнее: useEffect(() => { const interval = setInterval(() => { // do your work }, 1000 *30); return () => { // Функция не должна ничего возвращать clearInterval(interval); }; }, []);
запихнул в willunmout clearInterval почему-то продолжает работать, willunmout не выполнился почему-то
Как ты setInterval инициализируешь в componentDidMount? Покажи код
в конструкторе this.timer = setInterval(() => { const RandomNumber = Math.floor(Math.random() * 100) + 1; console.log('interval' + RandomNumber); this.doFetch(); }, 7000);
А почему в конструкторе, а не в componentDidMount?
react-navigation? про какой именно переход речь? табы например вообще не размонтируются при переходах по табнавигатору, а экраны стека размонтируются только при переходах назад. Если нужно что-то привязать к фокусу на конкретном экране, есть useIsFocused, useFocusEffect и подписки на события навигатора
А это на что-то влияет?
Да, переключение вкладок drawer. Мне нужно чтобы при переключении вкладки таймер отключался, почитаю, спасибо
Обсуждают сегодня