如何访问样式组件的 props 函数内的 CSS 变量?
How to access CSS variables inside props function of styled components?
我有一个 React 应用程序。它使用样式化的组件。
在 main.css 文件中,我定义了一个变量,如 -
:root {
primaryColor: 'red';
}
在 React 应用程序中,我将组件设置为(不工作)-
const myDiv = styled.div`
color: ${props => props.color? props.color : var(--primaryColor)};
`;
// 无效
如果我将样式化组件用作(有效)-
const myDiv = styled.div`
color: var(--primaryColor);
`;
有效。
如何使第一个案例生效?这是访问样式组件内的 css 变量。
您位于 returns props.color
内容的表达式或包含 var
表达式的字符串中。由于它是一个字符串,因此您需要用引号将其括起来。
const MyDiv = styled.div`
color: ${props => props.color? props.color : 'var(--primaryColor)'};
`;
ReactDOM.render(
<MyDiv>Some text</MyDiv>,
root
);
:root {
--primaryColor: red;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/16.6.3/umd/react.production.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/16.6.3/umd/react-dom.production.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/styled-components/4.4.0/styled-components.js"></script>
<div id="root"></div>
我有一个 React 应用程序。它使用样式化的组件。 在 main.css 文件中,我定义了一个变量,如 -
:root {
primaryColor: 'red';
}
在 React 应用程序中,我将组件设置为(不工作)-
const myDiv = styled.div`
color: ${props => props.color? props.color : var(--primaryColor)};
`;
// 无效
如果我将样式化组件用作(有效)-
const myDiv = styled.div`
color: var(--primaryColor);
`;
有效。
如何使第一个案例生效?这是访问样式组件内的 css 变量。
您位于 returns props.color
内容的表达式或包含 var
表达式的字符串中。由于它是一个字符串,因此您需要用引号将其括起来。
const MyDiv = styled.div`
color: ${props => props.color? props.color : 'var(--primaryColor)'};
`;
ReactDOM.render(
<MyDiv>Some text</MyDiv>,
root
);
:root {
--primaryColor: red;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/16.6.3/umd/react.production.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/16.6.3/umd/react-dom.production.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/styled-components/4.4.0/styled-components.js"></script>
<div id="root"></div>