一切似乎都很好,没有错误,但页面上的元素仍未设置样式。
webpack.config.js
{
test: /\.css$/,
loader: ExtractTextPlugin.extract('style', 'css?modules&importLoaders=1&localIdentName=[name]__[local]___[hash:base64:5]')
},
plugins: [
new ExtractTextPlugin('app.css', {
allChunks: true
}),
],
Layout.js
import React, { Component } from 'react';
import InteractiveMap from './InteractiveMap';
import Header from './header';
import Navigation from './navigation';
import CSSModules from 'react-css-modules';
import styles from './Layout.css';
class Layout extends Component {
render() {
return (
<div>
<div className={styles.mapContainer}>
<InteractiveMap />
</div>
<div>
<Header className={styles.header}>
<Navigation menuItems={menuItems}/>
</Header>
</div>
</div>
);
}
}
export default CSSModules(Layout, styles);
layout.css中
//testing
.mapContainer: {
padding: 0;
background-color: black;
height: 100%;
color: yellow;
}
.header {
color: yellow;
background-color: blue;
}
编译了app.css
.Layout__mapContainer___3yH5h: {
padding: 0;
background-color: black;
height: 100%;
color: yellow;
}
.Layout__header___2kJ4F {
color: yellow;
background-color: blue;
}
正如您在图片中看到的那样,类生成,应用于元素,但在页面上没有显示任何内容。 image
答案 0 :(得分:1)
在react-css-modules中,您使用styleName而不是className:
<div styleName="container">
这应该有效:
class Layout extends Component {
render() {
return (
<div>
<div styleName="mapContainer">
<InteractiveMap />
</div>
<div>
<Header styleName="header">
<Navigation menuItems={menuItems}/>
</Header>
</div>
</div>
);
}
}
答案 1 :(得分:0)
我遇到了同样的问题。 我的问题是我的.html文件中没有包含生成的CSS样式表。
没有样式表
<html>
<head>
</head>
<body>
<div id = "hero"> </div>
<script type="text/javascript" src="bundle.js"></script>
</body>
使用样式表(修复)
<html>
<head>
<link rel='stylesheet' href='app.css'>
</head>
<body>
<div id = "hero"> </div>
<script type="text/javascript" src="bundle.js"></script>
</body>
答案 2 :(得分:0)
您需要添加前缀“模块”,例如:
import styles from './Layout.module.css';