0

これはcssをインポートするコンポーネントです...

import React from 'react';
import styles from './sample.css';

class Index extends React.Component {

    render(){
        return (
            <div>

                <div className="${styles.bodywrap}"></div>

            </div>

        );
    }
}

export default Index;

私のスタイルシートsample.cssは次のとおりです...

.bodywrap {
    color:red;
}

しかし、Webアプリを実行すると、次のエラーが発生します...

SyntaxError: C:/Users/Eric/Desktop/tutorHub/components/index_components/sample.c
ss: Unexpected token (1:0)
> 1 | .bodywrap {
    | ^
  2 |   color:red;
  3 | }

私はcssモジュールをセットアップするための指示に従ったので、私のwebpack.configは次のようになります...

var path = require('path');
var webpack = require('webpack');
var ExtractTextPlugin = require('extract-text-webpack-plugin');

module.exports = {
    devtool: 'cheap-module-eval-source-map',
    entry: "./main.js",
    output: {
        path: '/',
        filename: 'index.js'
     },
    module: {
         loaders: [
            {
                test: /\.js$/,
                loader: 'babel',
                exclude: /node_modules/,
                query:{
                     presets: ['es2015','react'],
                }
            },
            {
         test: /\.css/,
         loader: ExtractTextPlugin.extract('css?modules&importLoaders=1&localIdentName=[name]__[local]___[hash:base64:5]')
      }


        ]
    },

    plugins: [
        new ExtractTextPlugin("styles.css"),
        new webpack.optimize.OccurrenceOrderPlugin()
     ]
 };

CSS が正しく読み取られない理由を教えてください。正しく認識されるようにコードを変換する必要がありますか?

編集

ノードjsを使用してサーバーを介して上記のコンポーネントをレンダリングしていることは、ノードにとって重要だと思います...

var express = require('express');
var router = express.Router();
var React = require('react');
var reactDom = require('react-dom/server');
var App = React.createFactory(require('../components/index'));
var MasterLayout = React.createFactory(require('../master/links'));

router.get('/', function(req,res) {
    var reactHtml = reactDom.renderToString(App({}));
    var styles = reactDom.renderToString(MasterLayout({}));
    res.render('../../tutorHub/index.jade', {reactOutput: reactHtml, links: styles});

});

これはcssに干渉する可能性がありますか?

4

1 に答える 1

1

webpack.config.jsにこのローダーを追加します:-

{
  loaders: [
    { test: /\.css$/, loader: "style-loader!css-loader" }
  ]
}

あなたのコンポーネントにこれを追加してください:-

   import 'yourPath.css';

このcssファイルのクラスを使用するには、書くだけです

<div className="yourClassName" />
于 2016-08-13T10:02:55.407 に答える