有没有办法在反应中使用JS动态更新scss变量?

Is there a way to dynamically update scss variables using JS in react?

问题

我在 colors.scss 文件中有两个 scss 变量 位置,我只想 更新变量颜色 来自 javascript 基于一个逻辑,

if(day){
  // update $backgroundColor to white
}else{
  // update $backgroundColor to black
}

更多信息:

我试过 :export{},但没有用,还 document.documentElement.style.setProperty 使用全局 css 变量。我正在使用 reactjs 进行前端开发。

您无法更新 scss 变量,因为它们在运行时(运行 JS 时)不存在。

您可以制作 2 个 类,每个样式一个,并在运行时应用 类 之一。

您可以将 css 变量分配给 $backgroundColor 作为

:root {
  --background-color: white;
}
$backgroundColor: var(--background-color);

并将 js 中的变量更新为

 const day = true;
 const root = document.documentElement;
 root.style.setProperty('--background-color', day ? 'white' : 'black');