【问题标题】:Solve collision className of css modules in react-create-app without eject解决 react-create-app 中 css 模块的碰撞 className 没有弹出
【发布时间】:2020-06-09 02:09:20
【问题描述】:

如何在没有弹出的情况下解决 react-create-app 中的 css className 冲突问题。 我每次都需要为应用程序的每次呈现创建唯一的类名。


例如我想要什么:

  1. 第一次渲染:Header_xHtdc
  2. 第二次渲染:Header_1dg5c

但现在我经常得到相同的类名

【问题讨论】:

    标签: javascript reactjs css-modules react-css-modules react-create-app


    【解决方案1】:

    如果您使用的是最新版本的 react,您可以执行以下操作:

    1. 将 CSS 文件重命名为 some.module.css(假设之前是 some.css)

    2. 像这样导入:

      从'./some.module.css'导入样式;

    样式将是一个对象,其键是您在 CSS 文件中定义的 id 和类。

    所以如果你有这样的风格:

    .parent {
     color: red;
    }
    

    你会像这样使用它

    className={styles.parent}
    

    在你的 JSX 中。

    【讨论】:

    • 现在我使用 css 模块。但是在项目的每个渲染中,类名都是相同的。
    • 为什么它们要在每次渲染时改变?我们通常使用 CSS 模块,以便将样式限定在我们导入和使用它们的文件中,以便将它们转换为随机散列,这就是我们所需要的,它们不必在每次渲染时生成新的散列。
    • 我有几个与小部件类似的应用程序,它们构建在通用应用程序中。当每个应用程序之一插入一般应用程序时,它会因其他应用程序的碰撞 css 样式而崩溃。所以,我需要在每次渲染时更改 css classNames
    猜你喜欢
    • 2019-11-23
    • 1970-01-01
    • 1970-01-01
    • 2020-02-11
    • 2020-10-07
    • 1970-01-01
    • 2014-05-16
    • 1970-01-01
    • 2018-08-19
    相关资源
    最近更新 更多