2017-07-26 3 views
0

まだシンプルな単純なアプリケーションを実行するにはまだ苦労しています。私は、サーバーを実行するとReact.createElement:タイプが単純な空のアプリケーションで無効です

ビルドは、(あなたが設定here, previous questionを見ることができます)

okです - クライアント側のエラーがある:

Uncaught Error: Element type is invalid: expected a string (for built-in components) or a class/function (for composite components) but got: object. You likely forgot to export your component from the file it's defined in.

at invariant (transformed.js:304) 
at ReactCompositeComponentWrapper.instantiateReactComponent [as _instantiateReactComponent] (transformed.js:11912) 
at ReactCompositeComponentWrapper.performInitialMount (transformed.js:27510) 
at ReactCompositeComponentWrapper.mountComponent (transformed.js:27401) 
at Object.mountComponent (transformed.js:4158) 
at mountComponentIntoNode (transformed.js:12676) 
at ReactReconcileTransaction.perform (transformed.js:5756) 
at batchedMountComponentIntoNode (transformed.js:12698) 
at ReactDefaultBatchingStrategyTransaction.perform (transformed.js:5756) 
at Object.batchedUpdates (transformed.js:29031) 

ここではコードです:

インデックス。 js

var React = require('react'); 
var ReactDOM = require('react-dom'); 
var App = require('./components/App.js'); 

ReactDOM.render(
    <App />, 
    document.getElementById('app') 
); 

index.htmlを

<html lang="en"> 
    <head> 
     <meta charset="UTF-8"> 
     <title>test</title> 
    </head> 
    <body> 
     <div id='app'></div> 
    </body> 
</html> 

App.js:FYI

import React from 'react'; 
import ReactDOM from 'react-dom'; 
// import {render} from 'react-dom'; //didn't helped either 

class App extends React.Component { 
    render() { 
    return (
     <div> 
     <p> Hello React!</p> 
     </div> 
    ); 
    } 
} 

回答は正しいですが、また一つのこと。 ここ(index.js中)のように、import上のすべてのrequireを変更することを忘れないでください:

import React from 'react'; 
import ReactDOM from 'react-dom'; 
import App from './components/App.js'; 

答えて

2

問題がある正確に何を語っています:

You likely forgot to export your component from the file it's defined in.

変更App.jsに似て:

// ... 
export default class App extends React.Component { 
// ... 

ところで

、なぜあなたが使用していますindex.jsにはrequire、App.jsにはES6がインポートされますか?

+0

私は本当にES6スタイルで書くのには使われていません。 – DanilGholtsman

+0

thx btw、変更しようとします – DanilGholtsman

+0

いいえ、まだエラーがあります – DanilGholtsman