一个具有多种主题样式的组件(Material-UI v5)

时间:2021-04-30 08:50:54

标签: material-ui

想知道是否可以执行以下场景。我想创建一个新组件,它实际上是具有另一种样式(基于主题)的现有组件的副本。

让我们以 Button 为例,它带有一个新的伪组件 MyButton

MyButton -> is a Button

在我希望能够拥有的主题中

Theme {
    components: {
        MuiButton :  ....  // styles for <Button/>
        MyButton :  ....  // styles for <MyButton/> 
    }
}

所以从样式的角度来看,我有两个不同的组件(它不是变体,因为两个组件可能都有自己的变体列表)。

作为一个惊人的奖励,如果 MyButton 是使用 Button 类创建更复杂组件的新组件的一部分,您会怎么做。

1 个答案:

答案 0 :(得分:1)

目前,无法重置核心组件的样式,但在我们发布 @material-ui/unstyled 包后可以实现。核心组件基本上是无样式组件的 styled() 版本。话虽如此,开发人员可以在无样式组件之上使用 styled() 实用程序,他们可以在其中定义不同的主题名称,从而产生不同的独立组件。