代码之家  ›  专栏  ›  技术社区  ›  StuffedPoblano

覆盖材质UI选项卡指示器情感样式

  •  0
  • StuffedPoblano  · 技术社区  · 7 年前

    尝试找出如何使用来自情感的样式覆盖选项卡指示器的样式。我不知道如何访问嵌套类。这就是我所拥有的,但并不能让我达到目的:

    const StyledTabs = styled(Tabs)(
      {
        classes: {
          indicator: {
            background: 'black',
          },
        },
      }
    );

    任何帮助都会很棒的!

    0 回复  |  直到 7 年前
        1
  •  1
  •   Ryan Cogswell    7 年前

    有几个问题。 styled from Emotion只支持每次使用生成一个类名。它不支持 classes: {indicator: {styles}} 你的例子中的结构。

    下面的语法允许您使用 样式化 为的“indicator”类提供类名 Tabs :

    const StyledTabs = styled(({ className, ...other }) => {
      return <Tabs {...other} classes={{ indicator: className }} />;
    })({
      backgroundColor: "black"
    });
    

    但是,这并不完全可靠,因为 <style> 情绪类型的元素在 <样式> JSS中的元素(用于材质UI的样式) <head> 文件的。我不知道如何改变情感风格的插入点,但你可以阅读 here 关于如何更改JSS的插入点。我在下面的沙盒中包含了这种方法。

    这是一个沙盒,显示了这一点:

    Edit Tabs indicator emotion

    另一个语法选项如下,允许您控制多个选项卡类:

    const StyledTabs = styled(({ className, ...other }) => {
      return <Tabs {...other} classes={{ root: className, flexContainer: "flexContainer", indicator: "indicator" }} />;
    })({
      "& .indicator": {
        background: "black"
      },
      "& .flexContainer": {
        flexDirection: "row-reverse"
      }
    });
    
    

    Edit Tabs indicator emotion