присутствует ключ dark-theme.
Логику по проверке localStorage я описываю в useEffect, если ключ dark-theme присутвует, то на <html /> я вешаю атрибут data-dark-theme.
Проблема заключается в том, что useEffect происходит после монтирования, и из-за этого тема "мерцает". Изначально она светлая, а когда useEffect сработал, и добавил на html нужный атрибут, то тема переключается на темную.
Если вынести логику проверки за пределы useEffect, то функция срабатывает сразу, и ничего не "мерцает".
Можно ли так поступать?
Можно вообще вынести за пределы реакта
у useEffect свои юзкейсы, если это решает вашу задачу то почему нет
Проще всего сделать проверку на первую загрузку, тогда должно работать корректно
Обсуждают сегодня