【发布时间】:2019-04-24 03:42:13
【问题描述】:
整整两天我都找不到任何解决方案。我还没有解决方案:(我有颜色状态。我将从颜色选择器中选择一种颜色,我将更新该特定颜色状态: 要求是如果我从颜色选择器中选择它必须从反应 js 属性或变量传递到 scss 变量 n 覆盖它们。它必须通过 reacrjs 到 scss 完成,如果它可以从 js 到 css 完成,那么它可以从 reacr js 到 scss 完成,这是我缺少的一件事。
App.js
{
primary: '#1976D2',
secondary: '#424242',
accent: '#82B1FF',
error: '#FF5252',
info: '#2196F3',
success: '#4CAF50',
warning: '#FFC107'
}
例如:primary: '#1976D2' 我会选择更新到 primary: '#ffffff' 类似:
App.js
changeColor(e){
this.setState({primary:e.target.value}) // the value is updated to #ffffff
}
现在,我需要将this.props.primary 传递给.scss,例如:
变量.scss
$primary:this.props.primary
login.scss
.btn{
background-color:$primary
}
我的需要是如果我从颜色选择器中选择它必须是动态的,它必须从 react js 属性或变量传递到 scss 变量 n 覆盖它们
我们可以做内联样式,但我想按照上面定义的方式做(通过 .scss)。 有可能吗?或者有更好的方法吗?
类似的东西
https://vuetifyjs.com/en/style/theme
vuejs 使用覆盖 scss 变量的主题
Vue.use(Vuetify, {
theme: {
primary: '#3f51b5',
secondary: '#b0bec5',
accent: '#8c9eff',
error: '#b71c1c'
}
})
谁能解释一下他们是怎么做的,我不明白
【问题讨论】:
-
scss 是在运行时之前编译的,因为它只能在运行时运行,因此应该如何处理它?如果您在运行时需要变量,则必须查看 CSS 变量。
-
那么我如何动态地做一些事情或任何好的选择在运行时为 css 变量提供任何好的链接以便快速学习?
-
如我评论后半部分所述。
-
@Zim 我不想要 sass-vars-to-js 我需要的是我选择一种颜色,即通过 js 传递给 sass
标签: reactjs sass bootstrap-4