javascript - 情感风格内部组件
问题描述
我有一个没有主题的基本组件,我希望为它及其子组件设置主题,是否可以使用 Emotion?
让我有:
基本组件.jsx
const Wrapper = styled('div')``;
const Inner1 = styled('div')``;
const Inner2 = styled('div')``;
export MyBaseComponent = () => (
<Wrapper>
<Inner1 />
<Inner2 />
</Wrapper>
);
ThemedMyComponent.jsx
export ThemeMyComponent = () => {
???
return (
<MyBaseComponent ??? ??? ??? />
)
}
我所有的主题内容都在第二个组件中,我想复杂的逻辑和装饰BaseComponent
唯一的内部ThemedMyComponent
。
最初的方法是:
const Wrapper = styled('div')``;
const Inner1 = styled('div')``;
const Inner2 = styled('div')``;
export MyBaseComponent = (props) => (
<Wrapper className={props.wrapperClassName}>
<Inner1 className={props.inner1ClassName}/>
<Inner2 className={props.inner2ClassName}/>
</Wrapper>
);
并将 3 className 传递给它,这意味着我必须使用withTheme
并做很多事情cx
,更不用说,你不能再情绪激动地这样做 10. 有没有更实用的方法来做到这一点?
这样做,我需要的只是css
来自ClassNames
渲染回调,这使得styled
未使用......
解决方案
推荐阅读
- deep-learning - 如何缩短神经网络的训练时间,并且仍然获得与真实值相匹配的值(准确度或其他指标)?
- python - 在 Python 中读取和转换 CSV 的自定义日期时间格式
- css - 如何在固定纵横比 16/9 的情况下保持图像 100% 的视口宽度
- node.js - 如何续订 aws iam 角色凭据?
- angular - 我应该如何使用 Ng2 文件上传添加额外的参数?
- c# - 如何使列表框以与另一个列表框相同的方式对项目进行排序?
- javascript - Discordjs - 获取后 lastMessageId 始终为空事件
- javascript - Serverless.yml AWS Lambda 将 EJS 模板嵌入到 Handler.js
- linux - 无法使用 GraalVM 构建应用程序本机映像
- apache-kafka - 同步消息队列