【发布时间】:2020-02-09 10:29:58
【问题描述】:
我有一个 REACT 应用程序(使用 create react app 和 react-bootstrap 引导),如果用户在其设置中启用此选项,我正在尝试为其添加切换到 DARK 主题的选项。我将设置存储在服务器上并将它们提取到属性中。
我有一个名为 dark.css 的单独样式表,其中我的所有组件样式都被覆盖。
dark.css(示例):
#root {
background-color: var(--dark);
color: var(--light)
}
.card {
background-color: var(--dark); // overriding bootstrap styles here
}
我正在尝试将它应用到我的应用程序的根目录,如下所示:
componentWillReceiveProps() {
if (this.props.profile && this.props.profile.theme === 'dark') {
require('./styles/dark.css');
}
}
使用yarn start 在本地运行应用程序时效果很好。但是当我实际使用 webpack 构建应用程序时,它的工作方式非常奇怪。无论选择哪个主题,都会应用和部分新样式。例如,从主主题应用背景,在深色主题中被忽略,但文本颜色相反。
为什么会这样?
使用 webpack 构建应用程序时,似乎根本没有应用深色样式表,尽管使用 yarn start 运行它时一切看起来都正确。
【问题讨论】:
-
请分享你的 webpack.config
-
我对所有事情都使用反应脚本。我还没有触及 webpack 配置。它是从我身上抽象出来的。
-
当您激活暗模式,然后刷新时,一切都会自行纠正吗?
-
不幸的是,没有。我通过将我的应用程序包装到动态类并加载所有 css 文件来解决我的问题,而不管选择的主题是什么(见答案)。这似乎效果很好。
标签: javascript css reactjs create-react-app