为第三方组件中的子元素设置样式

鲍勃·格拉斯

我正在使用名为“Dialog”的 3rd 方组件和下面的渲染方法。如您所见 - 组件有多个 className。我想创建一个名为 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>
  );
}
萨利赫

根据您的解释,我认为您应该使用styled方法包装这个 3rd 方组件,并通过从包装的样式化组件中引用该组件的相应类名来应用您的样式。

例如,如果现有组件的名称是Hello,则可以styled-component在其任何 DOM 子项上应用 a 样式,如下所示:

const StyledHello = styled(Hello)`
    .${classes.SURFACE} {
        width: 10rem;
        border: 2px solid green;
    }
`;

工作演示

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在第三方网站上的iframe中访问时,未为子域设置Django csrf cookie

来自分类Dev

创建具有自定义样式道具的第三方组件的样式组件?

来自分类Dev

设置为Windows窗体应用程序中的第三方对话框

来自分类Dev

如何使用样式化组件覆盖第三方默认样式

来自分类Dev

如何使用样式化组件覆盖第三方默认样式

来自分类Dev

如何覆盖第三方react组件的默认样式?

来自分类Dev

重叠第三方样式表

来自分类Dev

重叠第三方样式表

来自分类Dev

在React组件内显示自定义第三方html元素

来自分类Dev

在CMake中为第三方库设置解决方案文件夹属性

来自分类Dev

如何从第三方为@Inject到CDI bean中设置非CDI bean

来自分类Dev

如何部署第三方VueJS组件?

来自分类Dev

如何使用第三方组件

来自分类Dev

将ASP.NET捆绑设置为不删除第三方版权

来自分类Dev

子域上的第三方代码

来自分类Dev

Magento-设置第三方报价的税额

来自分类Dev

将第三方组件包装在angular2中

来自分类Dev

您如何引用Rails应用程序中的第三方反应组件?

来自分类Dev

如何在VueJS中合并2个第三方组件

来自分类Dev

在React组件中公开第三方lib(Firepad)方法

来自分类Dev

在Spring托管组件中自动连接第三方库

来自分类Dev

为Android WebView启用第三方Cookie

来自分类Dev

如何查找第三方库中正在使用的第三方组件

来自分类Dev

如何在第三方dll中设置功能断点

来自分类Dev

如何在Firefox中为第三方Cookie创建例外?

来自分类Dev

无法将Aurelia中的第三方库PapaParse加载为依赖项

来自分类Dev

在OSX中为Qt 5.5安装第三方模块

来自分类Dev

从Django中的第三方应用收集消息

来自分类Dev

在Pelican中安装第三方Markdown扩展

Related 相关文章

热门标签

归档