【发布时间】:2020-03-03 17:24:20
【问题描述】:
我刚刚从一个教程开始了一个 React 应用程序,并且一直在认真地学习它。然而,我很早就看到我认为我从 CSS 文件正确导入的类没有出现在输出中。我期望带有“主”标签的元素有 16 像素的边距。 CSS 文件称为 Layout.css,与使用它的 JavaScript 文件 (Layout.js) 位于同一目录中。 CSS 文件中只有一个类 Content,当我运行应用程序时,我看不到页面上的样式(16 px 边距)并在工具(chrome 开发工具)中检查页面,我没有看到样式选项卡下的样式。这是 CSS 文件(src/components/Layout/Layout.css):
.Content {
margin-top: 16px;
}
这里是JS文件(src/comonents/Layout/Layout.js):
import React from 'react';
import Auxi from '../../hoc/Auxi';
import classes from './Layout.css'
const layout = (props) => (
<Auxi>
<div>Toolbar, SideDrawer, Backdrop</div>
<main className={classes.Content}>
{props.children}
</main>
</Auxi>
);
export default layout;
我不认为这是问题的一部分,但为了完整起见,这里是应用程序中的其他三个 JS 文件。 src/App.js:
import React from 'react';
import Layout from './components/Layout/Layout';
import BurgerBuilder from './containers/BurgerBuilder/BurgerBuilder';
function App() {
return (
<div>
<Layout>
<BurgerBuilder />
</Layout>
</div>
);
}
export default App;
src/hoc/Auxi.js:
const auxi = (props) => props.children;
export default auxi;
src/containers/BurgerBuilder.js:
import React, { Component } from 'react';
import Auxi from '../../hoc/Auxi';
class BurgerBuilder extends Component {
render() {
return (
<Auxi>
<div>Burger</div>
<div>Build Controls</div>
</Auxi>
);
}
}
export default BurgerBuilder;
为了更加完整,这里是 src 目录结构:
回顾一下:我曾尝试在具有一个类的 React 应用程序中使用 CSS 文件。尝试使用该类时,我看不到样式并且不确定原因。谁能提供一些见解?
【问题讨论】:
-
import './layout.css', and className='content'
-
您正在尝试使用 className={classes.Content} ,这仅在您修改了 webpack 配置后才有效,我相信从记忆中它可能是 CSS 模块,但自从我使用以来已经有一段时间了它。如果您不记得更改 webpack 中的任何内容,那么您需要使用 className="content" 并按照 SamwellTarly 的上述说明导入样式表