【发布时间】:2019-04-25 04:02:31
【问题描述】:
考虑以下代码:-
render() {
const headerClasses=classnames({
"Header":true,
"Header---dark":this.props.theme.dark,
"Header--light":this.props.theme.light
})
return (
<div className={headerClasses}>
Header content goes here
</div>
)
}
我的应用程序将只有两个主题。一暗一亮。我正在尝试将主题存储在 redux 商店中,并使用类名相应地更改类名。它是一种有效的方法还是一种反模式?在大型应用程序中管理主题的最简单方法是什么?
【问题讨论】:
-
可以说最简单的方法是在
body元素上设置一个类(例如theme-light)。基于此,您可以仅在 CSS 中更改所有样式。您的方法似乎非常重复,因为您必须在任何地方添加它。 -
我会检查样式化组件。它支持多个主题
标签: reactjs react-redux class-names