2017-07-25 7 views
1

タイトルにエラーを示す簡単なルーティングプログラムがあります。以下は私のコードです。間違ったところで私を助けてください。事前のおかげReact.createElement:型が無効です - 文字列(組み込みコンポーネントの場合)またはクラス/関数(複合コンポーネントの場合)がありますが、取得済み:未定義

App.js

import React from 'react'; 

class App extends React.Component { 
    render() { 
     return (
      <div> 
       <h2>hello</h2> 
       {this.props.children} 
      </div> 
     ); 
    } 
} 

export default App; 

home.js

import React from 'react'; 

export default class Home extends React.Component { 
    render() { 
     return (
      <h1>Hello World!</h1> 
     ) 
    } 
} 

main.js

import React from 'react'; 
import ReactDOM from 'react-dom'; 
import { BrowserRouter as Router, Route, IndexRoute } from 'react-router-dom'; 

import Home from './components/home'; 
import App from './app'; 

ReactDOM.render(
    <Router> 
     <Route path="/" component={App}> 
      <IndexRoute component={Home} /> 
     </Route> 
    </Router>, 
    document.getElementById('app') 
); 

+0

でこれを追加してくださいあなたは追加のエラー情報を持っています。定義されているものは何ですか? –

+0

その子コンポーネントの宣言は定義されていません。基本的に私はそのhome.jsが定義されていないと感じています。 –

+1

IndexRouteは反応ルータv4のコンポーネントではありません。ありがとう。 – BLAKE

答えて

0

はあなたのメインのファイル

import React from 'react'; 
import ReactDOM from 'react-dom'; 
import { BrowserRouter as Router, Route, IndexRoute } from 'react-router-dom'; 

import Home from './components/home'; 
import App from './app'; 

ReactDOM.render(
    <Router> 
     <div> 
      <App /> 
      <Route exact path="/" component={Home} /> 
     </div> 
    </Router>, 
    document.getElementById('app') 
); 
+0

ありがとうございます。その働き。リンクが大きくなるとこれがどのようになるかをコメントすることができます。/home/page/something /:someidのように言う。 –

0
(app.jsから)ハロー印刷されています

Appコンポネントには子供がいないので、それらを試してレンダリングする必要はありません。基本的にはundefinedをレンダリングしようとします。だから、基本的にはその行を削除します。

class App extends React.Component { 
    render() { 
     return (
      <div> 
       <h2>hello</h2> 
      </div> 
     ); 
    } 
} 
関連する問題

 関連する問題