@javanub

MapStateToProps в каждый компонент, правильно ли я делаю?

У меня есть разные компоненты. Я хочу реализовать смену тем. С темной на светлую. Каждый компонент должен знать, какая сейчас тема и в зависимости от темы добавлять класс в DOM. Скажите, правильно ли я делаю, что добавляю в каждый компонент эту функцию, или можно как-то избежать дублирования:

// сюда приходит навазние темы: 'light', 'dark';
const mapStateToProps = state => ({
theme: state.theme
});

И уже дальше я делаю примерно так через пропсы: l-header__info l-header__info--(название темы)
  • Вопрос задан
  • 102 просмотра
Пригласить эксперта
Ответы на вопрос 2
rockon404
@rockon404 Куратор тега React
Frontend Developer
Тему удобней передавать через Context API.
В Styled Components и похожих решениях удобный theming из коробки.
Ответ написан
profesor08
@profesor08
На мой взгляд достаточно только для одного, самого главного компонента задать тему, а в стилях отталкиваться от нее. Так как если ты будешь пропихивать стейт в каждый компонент, ты получишь проблемы с производительностью, кучу дублирующегося кода и гемора все это раз за разом прописывать. Вот если сменится тема, то каждому компоненту будет задан соответствующий класс, а потом применены стили, куча вычислений. Это ненужно.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы