react:CSS 类名导入不起作用

IT技术 reactjs web-deployment
2021-05-19 06:14:50

<main>我的react组件中有一个div,我从一个类 css 文件中导入了一些类名,但是当我尝试在浏览器中检查它时,类名没有被集成到主 div 中。当我只是使用其他类名时,它的工作方式类似,<main className="test">但导入类不起作用。

这是我的组件:

import React from 'react';
import Aux from '../../hoc/Aux';
import classes from './Layout.css';

const layout = (props) => (
<Aux>
    <div>
        Test paragraph
    </div>
    <main className={classes.Content}>
        {props.children}

    </main>
</Aux>
);

export default layout;

这是我的css

.Content{
   color: red;
   margin-top: 20px;
}

npm run eject在创建后做了命令,如果webpack配置文件有问题请帮帮我(eject命令后我没有在那里做任何更改)

这是 webpack 开发配置文件的 css 部分

{
        test: cssRegex,
        exclude: cssModuleRegex,
        use: getStyleLoaders({
          importLoaders: 1,
        }),
      },
      // Adds support for CSS Modules (https://github.com/css-modules/css-modules)
      // using the extension .module.css
      {
        test: cssModuleRegex,
        use: getStyleLoaders({
          importLoaders: 1,
          modules: true,
          getLocalIdent: getCSSModuleLocalIdent,
        }),
 },
4个回答

import './Layout.css';

然后像普通的 CSS 一样使用它

<main className="Content">

您还可以将您的类用作具有以下格式的对象:

在您的 CSS 文件中:
将您的类和 ID 包裹起来:local(.className)

例子
:local(.Content) { width: 100px; }

在你的 React 组件中:
import classes from './stylesheet.css'

<div className={classes.Content}></div>

其实我是这样用的:

import classes from './Layout.module.css';

正如您在问题的文本中看到的:

// 使用扩展名 .module.css

您必须配置一些人员。跟着这些步骤:

  1. npm run eject 在您的项目根目录中运行此命令
  2. 搜索cssRegex并在下面添加以下行 use: getStyleLoaders({

        modules:true,
        localIdentName:'[name]__[local]__[hash:base64:5]'
    

享受!

确保 'npm run eject' 运行成功,然后您就可以访问 config 文件夹中的 webpack.config.js 文件。

  1. 停止服务器。
  2. 转到 webpack.config.js
  3. 查找 cssRegex 并按照图像中的说明进行更新 webpack.config.js
  4. 重启服务器