Я учусь реагировать, и я настроил веб-пакет вместо использования приложения create-react-app с веб-пакетом 4. Я применил стили к компонентам, но стили не влияют на компоненты, но цвет фона, который я установил в файле css, влияет на страница. В чем может быть проблема? Сообщение об ошибке не отображается. См. Файл webpack.config.js ниже и код компонента.
Webpack.config.js
const path = require('path');
const webpack = require('webpack');
const HtmlWebpackPlugin = require('html-webpack-plugin');
const port = process.env.PORT || 3000;
const paths = {
DIST: path.resolve(__dirname, 'dist'),
SRC: path.resolve(__dirname, 'src'),
};
const htmlPlugin = new HtmlWebpackPlugin({
template: "./src/index.html",
filename: "./index.html"
});
module.exports = {
mode: 'development',
entry: path.join(paths.SRC, 'index.js'),
output: {
path: paths.DIST,
filename: 'app.bundle.js'
},
module:{
rules: [
{
test: /\.js$/,
exclude: /node_modules/,
use: {
loader: "babel-loader"
}
},
{
test: /\.css$/,
use: [
{
loader: "style-loader"
},
{
loader: "css-loader",
options:{
modules: true,
importLoaders: 1,
localIndentName: "[name]_[local]_[hash:base64]",
sourceMap: true,
minimize: true,
camelCase:true
}
}
]
}
]
},
plugins: [
htmlPlugin,
new webpack.HotModuleReplacementPlugin()
],
devServer: {
// contentBase: paths.JS,
// publicPath: paths.DIST,
host: 'localhost',
port: port,
historyApiFallback: true,
open:true,
//hot: true,
inline: true
}
};
App.js
import React, {Component} from 'react';
import './index.css';
class App extends Component{
render(){
const helloWorld = 'Welcome to the Road to learn React';
return (
<div className = "app">
<h2>{helloWorld}</h2>
</div>
);
}
}
export default App;
как вы устанавливаете стили? Атрибут стиля реакции принимает объект javascript со свойствами camelCased, а не обычные свойства, которые мы даем в классе css. Итак, вы должны указать что-то вроде style = {{backgroundColor: 'red'}}
Если вы пытаетесь использовать модули CSS, я считаю, что вам нужно импортировать свою таблицу стилей с именем import styles from './index.css', а затем ссылаться на имя класса css из импортированного объекта. className = "{styles.app}".
Если вы посмотрите на код выше, там есть строка, импортированная css. Это работает так, когда вы используете приложение create-response-app. Он не работает с тем, что я установил с помощью webpack.
@Kyle Lussier, вы были правы, однако имя класса должно быть таким: className = {styles.app} без кавычек
@DavidEssien Ах, правильно. Спасибо, что разъяснили это.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Я понял, в чем проблема. на вершине,
import styles from './index.css';
затем в компоненте
<div className = {styles.app}>
как вы устанавливаете стили?