2017-01-30 20 views
1

Reactといくつかのサンプルアプリケーションを行うのが初めてです。 私は "反応ルータ"のコンセプトを探しています。ReactJS:ルーティング設定の問題

AppHeader.jsx

import React from 'react'; 
import Router from 'react-router'; 
import { Link, Route, RouteHandler } from 'react-router'; 

class AppHeader extends React.Component{ 

    render(){ 
     return (
      <div> 
       <div className="header"> 
         <ul> 
         <li><Link to="home">Home</Link></li>  
         <li><Link to="fundamentals">React-Fundamentals</Link></li> 
          <li><Link to="components">React-Components</Link></li> 
          <li><Link to="flux">React-Flux</Link></li> 
          <li><Link to="babel">React-Babel</Link></li> 
         </ul> 
         <div className="crede-menu"> 
           <li><Link to="register">Register</Link></li> 
           <li><Link to="login">Login</Link></li> 
         </div> 
         </div> 

          <center> 
           <RouteHandler></RouteHandler> 
          </center> 

          <div className="footer"> 
          <p><center>!copy rights reserved @ 2016</center></p> 
       </div> 
      </div> 
    ) 
    } 

} 
export default AppHeader; 

app.js

import React from 'react'; 
import ReactDOM from 'react-dom'; 
import Router from 'react-router/lib/Router'; 
import browserHistory from 'react-router/lib/browserHistory'; 
import Link from 'react-router/lib/Link'; 
import Route from 'react-router/lib/Route'; 
import AppHeader from '../jsx/header.jsx'; 
import Home from '../jsx/home.jsx'; 
import Fundamentals from '../jsx/fundamentals.jsx'; 
import Components from '../jsx/components.jsx'; 
import Flux from '../jsx/flux.jsx'; 
import Babel from '../jsx/babel.jsx'; 
import Register from '../jsx/register.jsx'; 
import Login from '../jsx/login.jsx'; 
var DefaultRoute = Router.DefaultRoute; 
var RouteHandler = Router.RouteHandler; 


var routes = (
    <Route component={AppHeader}> 
     <Route path="/" component={Home} /> 
     <Route path="register" component={Register} /> 
     <Route path="login" component={Login}/> 
     <Route path="fundamentals" component={Fundamentals}/> 
     <Route path="components" component={Components}/> 
     <Route path="flux" component={Flux}/> 
     <Route path="babel" component={Babel}/> 
    </Route> 
    ); 

/*running the routes*/ 
    ReactDOM.render(<Router routes={routes} history={browserHistory} />, document.getElementById('reactApp')) 

私は以下のようにエラーを取得しています、私は実行何も間違っhere.when私の例私を助けてください。

Warning: React.createElement: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: undefined. You likely forgot to export your component from the file it's defined in. Check the render method of `AppHeader`. 

不明なエラー:要素タイプが無効であるが:(内蔵部品のための)文字列または(複合コンポーネント用)クラス/機能を期待したが得た:未定義。コンポーネントが定義されているファイルからコンポーネントをエクスポートするのを忘れた可能性があります。AppHeaderというレンダリング方法を確認してください。 folder structure

+0

「../ JSX/header.jsx 『からあなたのパス '輸入AppHeader; ' – lustoykov

+0

間違っている私は、名前を変更し、』に変更しました。.. /jsx/AppHeader.jsx '、まだ同じエラー 私がさらに進めるのには助けてください。 –

+0

あなたのプロジェクトの構造は何ですか?ファイルまたは何かのスクリーンショットをアップロードしてください – lustoykov

答えて

0

React.createElement:タイプが無効です - 文字列(組み込みコンポーネント用)またはクラス/関数(複合コンポーネント用)がありますが、未定義です。あなたはおそらくそれがで定義されていたファイルからコンポーネントをエクスポートするのを忘れ

var React = require('react'); 
var ReactDOM = require('react-dom'); 
var Router = require('react-router').Router; 
var Route = require('react-router').Route; 

var Home = React.createClass({ 
    render: function(){ 
     return (
      <div>Welcome !</div> 
     ); 
    } 
}); 

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