我正在尝试在我的 React 项目中使用 CSS 模块。问题的第一部分是,如果我编写嵌套的 css 类(使用 sass),我不知道是否可以访问内部类,因为这些类似乎也被编译成唯一的类名。一些代码:

<div className={this.state.visible ? styles.header+" menu-visible" : styles.header}> 
    <div className="menu"> 
        <a className="link">title</a> 
    </div> 
</div> 
.header { 
    &.menu-visible { 
        .menu { 
            display: block; 
        } 
    } 
} 

我有一个包装类,有时是“菜单可见”的,它会更改所有子级的属性,在 React 中这样做是不是不好的做法?

如果菜单可见,.header 中有多个类会发生更改,因此仅更改包装类会很方便,我可以以某种方式引用子级吗?这样仍然嵌套在 scss 中吗?

编辑

我能想到的一个解决方案是将 className="menu"替换为 className={styles.header.menu} 但这似乎不起作用。问题是,如果 .menu 的父级具有 menu-visible 类,我希望 .menu 更改其属性。

请您参考如下方法:

我解决了。我想我只是在心里做得太过分了。我可以只编写 styles.menu,而不是编写 styles.header.menu,即使它是嵌套的。

示例(React + JSX):

<div className={styles.header}> 
  <div className={styles.menu}> 
      Whatever 
  </div> 
</div> 
 
.header { 
   .menu { 
      display: block; 
   } 
 } 


评论关闭
IT虾米网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!