React不会从className追加类

时间:2017-12-06 00:48:42

标签: javascript html reactjs

我遇到了React的问题而且不知道为什么,但React并没有在呈现的HTML代码中附加属性<div>test</div>。我在body中导入css文件,在react脚本中导入样式,编写className属性等。

页面上的结果将是没有类的阻止 - App.js

import React, {Component} from 'react'; import styles from '../assets/main.css'; export default class App extends Component { constructor(props) { super(props); } render() { return ( <div> <div className={styles.test}>test</div> </div> ); } }

main.css

.test { color: red; }

const HTMLWebpackPlugin = require('html-webpack-plugin');
const HTMLWebpackPluginConfig = new HTMLWebpackPlugin({
    template: __dirname + '/app/index.html',
    filename: 'index.html',
    inject: 'body'
});
const webpack = require('webpack');

module.exports = {
    entry: [
        'react-hot-loader/patch',
        __dirname + '/app/index.js'
    ],
    devServer: {
        hot: true
    },
    module: {
        loaders: [
            {
                test: /\.js$/,
                exclude: /node_modules/,
                loader: 'babel-loader'
            },
            {
                test: /\.css$/,
                loader: "style-loader!css-loader"
            }
        ]
    },
    output: {
        filename: 'transformed.js',
        path: __dirname + '/build'
    },
    plugins: [
        HTMLWebpackPluginConfig,
        new webpack.NamedModulesPlugin(),
        new webpack.HotModuleReplacementPlugin()
    ],
    resolve: {
        extensions: ['.js', '.jsx', '.css']
    }
};

Webpack配置

{{1}}

2 个答案:

答案 0 :(得分:1)

导入CSS样式表只会导致Webpack将其与其他JavaScript捆绑在一起。您无法将styles.test添加为属性,也无法执行任何操作。您需要将className指定为字符串,就像对HTML元素一样。

render() {
    return (
        <div>
            <div className="test" >test</div>
        </div>
    );
}

答案 1 :(得分:1)

我认为您应该尝试在您的条目文件中导入main.css文件,即app / index.js。您不需要在className中添加{styles.test}。

import './assets/main.css';

当webpack包运行时,它将占用你所有的css。

您只需要提供相同的className:

        <div>
            <div className='test'>test</div>
        </div>

另外,请确保已安装所有加载器,如file-loader,css-loader,url-loader,style-loader,并将它们包含在webpack.config文件中。