2016-03-23 61 views
0

使用此设置:https://github.com/gaearon/react-transform-boilerplateReactJS渲染包含的文件不能正常工作

问题是,指数并没有呈现从文件form.jsx什么。它只显示“索引文件”。我在webpack配置中将加载程序更改为“test: /\.jsx?$/,”。任何线索有什么不对?

index.jsx

import React, { Component } from 'react'; 
import formA from './form.jsx'; 

class index extends Component { 
    render() { 
    return (
     <div> 
     Index file 
     <formA /> 
     </div> 
    ); 
    } 
} 

export default index; 

form.jsx

import React, { Component } from 'react'; 

class formA extends Component { 
    render() { 
    return (
     <div> 
     test 
     </div> 
    ); 
    } 
} 

export default formA; 

的WebPack配置

var path = require('path'); 
var webpack = require('webpack'); 
module.exports = { 
    // or devtool: 'eval' to debug issues with compiled output: 
    devtool: 'cheap-module-eval-source-map', 
    entry: [ 
    // necessary for hot reloading with IE: 
    'eventsource-polyfill', 
    // listen to code updates emitted by hot middleware: 
    'webpack-hot-middleware/client', 
    // your code: 
    './src/scripts/index' 
    ], 
    output: { 
    path: path.join(__dirname, 'dist'), 
    filename: 'bundle.js', 
    publicPath: '/dist/' 
    }, 
    plugins: [ 
    new webpack.HotModuleReplacementPlugin(), 
    new webpack.NoErrorsPlugin() 
    ], 
    module: { 
    loaders: [{ 
     test: /\.jsx?$/, 
     loaders: ['babel'], 
     include: path.join(__dirname, 'src') 
    }] 
    } 
}; 
+0

可以显示您的webpack配置吗? – erichardson30

+0

@ erichardson30添加了webpack配置。 – Amidii

+0

与您的webpack配置位于同一个文件夹中的“src”?你必须指出它的位置,如'../ src'或'。/ src' – erichardson30

回答

2

你应该开始组件名称用大写字母 - 替换<formA /><FormA />

它发生,因为<formA /> transpiles React.createElement('formA')<FormA /> transpiles into React.createElement(FormA)

在第一种情况下,您将创建一个名称为formA标记。在第二种情况下,您创建了一个组件FormA

More in React docs

+0

谢谢,现在工作! “要呈现React组件,只需创建一个以大写字母开头的局部变量:” – Amidii