我想要实现的是这样的东西:
import styled from 'react-emotion'
const StyledComponent = styled(({tag}) => tag)`
// some css styles
`并把它当作:
<StyledComponent tag=div"/>
<StyledComponent tag="p"/>
<StyledComponent tag="ul"/>
// etc我的期望是,它应该生成如下HTML:
<div class="some-class"></div>
<p class="some-class"></p>
<ul class="some-class"></ul>实际产出:
div
p
ul我的问题是,这能实现吗?还是我遗漏了什么?
发布于 2018-06-21 06:25:05
看来我已经想出了解决问题的办法。为那些可能遇到同样问题的人分享我的答案。
我将StyledComponent声明更改为:
import styled from 'react-emotion'
const StyledComponent = styled(({tag, children, ...props}) => React.createElement(tag, props, children))`
// some css styles
`这正如期而至。
如果有人有更好的答案,请发帖子。谢谢
发布于 2018-06-21 06:09:50
您使用react-emotion的方式是错误的,请试试这个。
const StyledComponent = ({ tag, children, ...props }) => {
const Container = styled(tag)`
background-colo: red;
`;
return <Container {...props}>{children}</Container>;
};https://stackoverflow.com/questions/50961377
复制相似问题