css - 如何访问样式化组件的 props 函数内的 CSS 变量?

标签 css reactjs styled-components react-props css-variables

我有一个 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 变量。

最佳答案

您位于返回 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>

关于css - 如何访问样式化组件的 props 函数内的 CSS 变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58680555/

相关文章:

reactjs - Material 界面 : Cannot read property 'button' of undefined

javascript - 在 React.js 应用程序中处理字体定义的可扩展方式

javascript - 样式化组件 onClick 旋转元素

javascript - 如何将 Prop 传递给样式化组件中的基础组件?

jquery - 在纯 CSS 中将子级的宽度设置为父级的高度

javascript - 通过服务器端条件加载 javascript 或 CSS 有缺点吗?

html - CSS 我可以在较小的屏幕上设置较高的 % 宽度吗?

javascript - 纯reactJS : Game of Life rules are displayed wrong due to float:left grid building not corresponding with 2d Array

asp.net - TreeView — 所选节点样式不会出现在所选节点中

javascript - React组件找不到函数