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

Shu*_*ath 9 javascript css sass reactjs scss-mixins

问题

我在文件中有两个scss 变量colors.scss,我想仅根据逻辑从javascript更新变量颜色,

if(day){
  // update $backgroundColor to white
}else{
  // update $backgroundColor to black
}
Run Code Online (Sandbox Code Playgroud)

更多信息:

我已经尝试过:export{}哪个不起作用并且还document.documentElement.style.setProperty使用全局 css 变量。我正在使用reactjs进行前端开发。

Shy*_*yam 13

您可以将 css 变量分配给$backgroundColoras

:root {
  --background-color: white;
}
$backgroundColor: var(--background-color);
Run Code Online (Sandbox Code Playgroud)

并将 js 中的变量更新为

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