我有一个没有主题的基本组件,我希望为它及其子组件设置主题,是否可以使用 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
未使用......