首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Emotion.sh从样式组件传递道具

使用Emotion.sh从样式组件传递道具
EN

Stack Overflow用户
提问于 2020-02-11 12:03:44
回答 1查看 1.3K关注 0票数 0

我使用@emotion\styled声明了以下样式的按钮

代码语言:javascript
复制
const Button = styled.button`
 background: blue;
 ${size({
  width: props => props.width
 )}
`

在我的代码中,size是一个函数,它根据传递的支柱返回css序列化样式:

代码语言:javascript
复制
const size = ({ width: "m"} = {}) => {
 switch(width) {
  case "s":
   return css`width: 100px`;
  break;
  case "m":
   return css`width: 150px`;
  break;
 }
} 
代码语言:javascript
复制
<Button width="s">Some text</Button>

但是,我在width函数中接收到的size值不是来自传递的支柱(即s )的解析值,而是一个字符串props => props.width

是否有任何方法将道具传递到类似于我所要实现的功能的样式组件中?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-02-17 21:58:02

它不起作用,因为您将匿名函数传递给width,在这里您不需要函数。

我很确定这就是你想做的:

代码语言:javascript
复制
const Button = styled.button`
 background: blue;
 ${props => size({ width: props.width })}
`

这样,您就可以在样式声明的范围内传递一个匿名函数,从情感中获取道具,并且可以随意使用它。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60168380

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档