如何在样式组件、情感中使用嵌套的 css 模板文字

Posted

技术标签:

【中文标题】如何在样式组件、情感中使用嵌套的 css 模板文字【英文标题】:how can I use nested css template literals in styled-components, emotion 【发布时间】:2021-01-03 02:29:05 【问题描述】:
const someStyle = css`
  colors : $(theme) => theme.colors.primary; 
  $(props) => props.active ? css`
   background-color: $(theme) => theme.colors.backgroundColorActive;
  `
`

const SomeButton = styled.div`
  $someStyle 
`

我可以使用 css 嵌套在另一个 css 模板文字中的模板文字吗?

【问题讨论】:

【参考方案1】:

更简单的是你可以使用一个简单的模板字符串:

const someStyle = `
  color: $(theme) => theme.colors.primary; 
  $(props) => props.active ? `
   background-color: $(theme) => theme.colors.backgroundColorActive;
  `
`

const SomeButton = styled.div`
  $someStyle 
`

【讨论】:

非常感谢您的回答。我应该知道的一件事是如何使用带有嵌套 css 的模板字符串。 @jay1234 与之前的css 相同(就像你一样)。但请注意,colors: 无效,但 color: 有效;)

以上是关于如何在样式组件、情感中使用嵌套的 css 模板文字的主要内容,如果未能解决你的问题,请参考以下文章

React 的样式化组件 vs jss vs 情感

在模板文字中定义函数

如何使用情感风格扩展风格?

如何使用来自@mui/material 的样式使情感组件选择器在 nextjs 应用程序中工作?

如何测试嵌套组件的样式 jest-styled-components

WebStorm 中的情感样式组件未自动完成