当前位置: 首页 > 知识库问答 >
问题:

带有CSS模块和React的多个类名

权韬
2023-03-14

我使用下面的代码在React组件中基于来自props的布尔值动态设置一个class Name:

但是,我也在使用CSS模块,所以现在我需要将类名设置为:

从./styles.css导入样式;

我在这方面遇到了麻烦-我尝试使用类名来获得对多个类的更多控制,但因为我需要最终结果是将类名同时设置为样式。侧菜单样式。活动(为了让CSS模块生效),我不确定如何处理这个问题。

非常感谢任何指导。


共有3个答案

皮嘉德
2023-03-14

我想添加一个更好的方法来使用类名npm的bindapi。您可以将类名绑定到从css导入的样式对象,如下所示:

import classNames from 'classnames/bind';
import styles from './index.css';

let cx = classNames.bind(styles);

并像这样使用它:

cx("sideMenu", "active": isOpen)

“侧菜单”和“活动”在“样式”对象中的位置。

漆雕奇逸
2023-03-14

有点晚了,但是使用字符串模板对我有用——如果你愿意,你可以把三元运算符移出到常量:

<div className={`${styles.sideMenu} ${this.props.menuOpen ? styles.inactive : styles.active}`>
...
</div>
颛孙炜
2023-03-14

使用类名和es6:

let classNames = classnames(styles.sideMenu, { [styles.active]: this.props.menuOpen });

使用类名和es5:

var classNames = classnames(styles.sideMenu, this.props.menuOpen ? styles.active : '');
 类似资料:
  • 问题内容: 我是整个浏览器新手。我一直在尝试使用browserify + reactify + gulp来转换,缩小和组合一个React应用程序。只要我有一个单身,一切正常。由于我有多个共享组件,因此我实际上是托管在同一文件中并在项目中重复使用,因此我想导出多个组件。我试过一个数组: 并且还尝试了具有多个属性的对象: 并且还尝试对对象中的调用进行内联,但这无济于事。 有没有办法做到这一点,还是我必

  • MyApp和MyAppCore有自己的AppComponent,MyApp提供ViewModel工厂,MyAppCore提供数据库和网络访问工厂(下面的示例)。 我不确定如何链接AppComponent(或应用程序),以便在MyApp中提供数据库和网络访问。以下是我目前掌握的信息: MyAppCore模块 MyAppCore还具有名为的Room数据库实现和接口(我认为我不需要在这个问题中添加此代码

  • https://docs.gradle.org/current/userguide/jacoco_plugin.html 并使用Gradle过滤JaCoCo覆盖报告 但没有发现任何线索 以下是gradle文件的内容 下面看我自己的答案

  • 使用lodash es,我们可以挑选如下模块:

  • 我试图在一个多模块的gradle项目中使用Springdoc,但我无法使它工作。有人做过类似的事情吗? 我的Gradle项目结构如下: My project 应用程序 与模块1相同 Application模块依赖于每个模块项目和 在API子模块上有:

  • 问题内容: CSS与React组件的当前做法似乎是使用webpack的样式加载器将其加载到页面中。 通过这样做,样式加载器会将元素注入DOM。但是,不会出现在虚拟DOM中,因此如果进行服务器端渲染,则将省略。这导致页面具有FOUC。 还有其他方法可以加载在服务器和客户端均可使用的CSS模块吗? 问题答案: 您可以看一下isomorphic-style-loader。加载程序是专门为解决此类问题而创