在React中使用全局SASS变量迁移到样式化组件

sku*_*ube 3 sass reactjs styled-components

我试图将Styled-Components缓慢引入现有的代码库中,该代码库严重依赖于全局SASS变量(部分导入到中main.scss)。

如何引用SCSS变量?以下内容不起作用:

import React from 'react';
import styled from 'styled-components';

const Button = styled.button`
  background-color: $color-blue;
`;

export default Button;
Run Code Online (Sandbox Code Playgroud)

我是从错误的方式来处理这个问题吗?

yan*_*nto 9

请原谅我,如果这是一个老问题,但我对我如何使用我的两个CSS变量以为我的芯片.scss,并styled-components在有需要时当。

基本用法:

声明一个全局变量(最好在_variables.scss

:root {
    --primary-color: #fec85b;
}
Run Code Online (Sandbox Code Playgroud)

使用全局属性:

.button {
    background-color: var(--primary-color);
}
Run Code Online (Sandbox Code Playgroud)

或者

const Button = styled.button`
    background-color: var(--primary-color);
`;
Run Code Online (Sandbox Code Playgroud)

请注意双线--


Yas*_*tal 7

变量在.scssor 中起着非常重要的作用.sass,但功能不能扩展到文件之外。

相反,您必须创建一个单独的.js文件例如: variable.js)并将所有变量定义为一个对象。


Ada*_*dam 6

我写了一篇有关解决这个问题的文章。https://medium.com/styled-components/getting-sassy-with-sass-styled-theme-9a375cfb78e8

本质上,您可以使用出色的sass-extract库以及sass-extract-loadersass-extract-js插件,将全局Sass变量作为主题对象引入应用程序。