如何使用 styled-components 将 prop 传递给 Material-UI 组件

Posted

技术标签:

【中文标题】如何使用 styled-components 将 prop 传递给 Material-UI 组件【英文标题】:How to pass prop to Material-UI component using styled-components 【发布时间】:2021-05-19 18:46:35 【问题描述】:

我想使用样式组件设置 MUI 按钮的样式。我想将variant='outlined' 作为组件传递给组件。这是我正在尝试的:

export const StyledButton = styled(Button).attrs(() => (
  variant: 'outlined',
))

它会抛出这个错误:

【问题讨论】:

他们在 MUI 文档中有一个这样的例子:material-ui.com/guides/interoperability/#deeper-elements-2 【参考方案1】:

要传递属性,您必须执行以下操作:

const StyledButton = styled(Button)`
  background-color: #6772e5;
  color: #fff;
  box-shadow: 0 4px 6px rgba(50, 50, 93, 0.11), 0 1px 3px rgba(0, 0, 0, 0.08);
  padding: 7px 14px;
  &:hover 
    background-color: #5469d4;
  
`;

export default function StyledComponent() 
  return (
      <StyledButton variant="outlined">Customized</StyledButton>
  );

更多内容可以参考官方Doc

【讨论】:

以上是关于如何使用 styled-components 将 prop 传递给 Material-UI 组件的主要内容,如果未能解决你的问题,请参考以下文章

如何将 Nextjs + styled-components 与 material-ui 集成

如何使用 styled-components 更改其他组件的属性?

如何理性看待Tailwind和styled-components争宠React

如何理性看待Tailwind和styled-components争宠React

如何使用 Typescript 和 styled-components 创建 ref

如何使用v4版本styled-components的全局样式?