Там выше
а нуда только в переменную this.timer = null; componentDidUpdate () this.timer = setInterval().. а потом в componentWillUnmount if(this.timer) { clearInterval(this.timer) } честно я уже непомню как правильно это на классовых компонентах делать 2 года как не юзал их
и тогда при каждом апдейте будешь терять по интервалу, и при анмаунте закроешь только последний
ну да, очистишь ты один интервал, а создать можешь штук 100
относись к нему как к функции которая перезапускаеться как только получет новые пропсы или стейт а в componentDidUpdate какое условие стоит? вот тотоже
никакого условия не стоит, а новые пропсы или стейт ты можешь получить хоть 100 раз, значит создашь 100 интревалов
так и unmount столько же раз и сработает
с чего это?🤷♂️
unmount 1 раз при размонтировании компонента
а потому что весь класс пересаздаёться со всеми методами джизненого цикла
когда?) при смене стейта или пропсов?))
ну может тогда не со мной спорь, а с теми кто писал React и будешь оспаривать их решение чистить интервалы в жизненом цикле componentWillUnmount
а я и не оспариваю чистку интервалов в componentWillUnmount, я оспариваю запуск интервалов в componentDidUpdate, особенно без условий
так он внутри интервала написал условие ,вот него и бесконечный цикл он то условие вынести должен и правильно его написать и я слабо верю что механика ререндера класса отличаеться функций, функциональные точно перезапускаються со всеми хуками внутри как только получают новый стейт или пропсы
где у него внутри интервала условие? Да и сейчас речь была о твоём варианте
и что ты этим сравнением хочешь сказать, что компонент маунтится снова при смене стейта или проспсов?)
именно это и происходит если интервалы удаляються значит этот метод componentWillUnmount срабатывает и компонент удаляеться componentWillUnmount() вызывается непосредственно перед размонтированием и удалением компонента. В этом методе выполняется необходимый сброс: отмена таймеров, сетевых запросов и подписок, созданных в componentDidMount().
в в componentDidMount(), Карл!!!
открою секрет, но componentDidMount не вызывается при смене состояния или пропсов
и как вообще этот текст связан с утверждением, что компонент заново маунтится при смене состояния?
я знаю , тю , он для сранения предыдцщих стейта и пропсов и без условий в бесконечный цикл летит
нет, componentDidMount выполняется ровно 1 раз за весь жизненный цикл
ну вот и подумай теперь
хорошо а когда willUnmount должен сработать , когда что ? тоесть когда этот момент unMount наступает ? у тех методов есть тригеры пропсы и стейт , а тут?
когда компонент перестает рендерится, т.е. пропадает из дерева
это когда мы сроута компонента ушли или закрыли например модалку?
да
ладно позно уже, давно не юзал все это классовое дерьмо, позабывал видимо , ну спасибо повспоминал старину , а друг который с этим кодом пришёл наверно уже 3-й сон видит, а тут всё спорили
Обсуждают сегодня