【发布时间】:2018-05-25 14:25:45
【问题描述】:
我正在使用名为“Dialog”的第 3 方组件和下面的渲染方法。如您所见 - 组件有多个类名。我想创建一个名为 StyledDialog 的样式化组件,其中包含一个道具,可以让我覆盖与具有“SURFACE”类名的 div 关联的宽度。这可以通过 Styled-Components 完成吗?或者我需要将源代码引入我的应用程序并手动处理。
render() {
const { className, children, onClose, open, ...otherProps } = this.props;
const ariaHiddenProp = open ? {} : { 'aria-hidden': true };
return (
<aside
className={classnames(
ROOT,
{
[ANIMATING]: this.state.animating,
[OPEN]: open,
},
className
)}
onClick={(e) => {
if (onClose) onClose(e);
}}
onTransitionEnd={() => {
this.setState({ animating: false });
}}
{...ariaHiddenProp}
>
<div
className={SURFACE}
onClick={(e) => {
e.stopPropagation();
}}
{...otherProps}
>
{children}
</div>
<div className={BACKDROP} />
</aside>
);
}
【问题讨论】: