2016-10-27 1 views
-1

私の反応ルータは私のニュースと写真のページを開いていません。開いたら、各ページにヘッダーファイルを表示することになっています。ニュースページ(localhost:8080/news)を開こうとすると、自分のノードコマンドプロンプトに404ページが見つかりませんというエラーメッセージが表示されます。リアクタは複数のページを開いていません

My GitHub repository

var React = require('react'); 

var ReactRouter = require('react-router'); 

var Router = ReactRouter.Router; 

var Route = ReactRouter.Route; 


var browserHistory = ReactRouter.browserHistory; 

var Header = require('./components/Header.jsx'); 

var News = require('./components/News.jsx'); 

var Photos = require('./components/Photos.jsx'); 


var Routes = (

    <Router history={browserHistory}> 

     <Route path="/" component={Header}> 

      <Route path="news" component={News} /> 

      <Route path="photos" component={Photos} /> 

     </Route> 

    </Router> 

); 

module.exports = Routes; 
+0

ここで関連コード*を表示してください。 – Li357

答えて

0

ここでは、あなたのmain.jsファイルに何ができるかを簡単に答えがあります。おそらく、コードを構造化するためのより良い方法があります。私は、インターネット上のより多くのリアクションの例を詳しく見てみることをお勧めします。

'use strict'; 

var React = require('react'); 
var ReactDOM = require('react-dom'); 
var Routes = require('./Routes.jsx'); 
var Header = require('./components/Header.jsx'); 

var Main = React.createClass({ 
    render: function(){ 
     return(
      <div> 
       <Header /> 
       <Routes /> 
      </div> 
     ); 
    } 
}); 

ReactDOM.render(<Main />, document.getElementById('switch')); 

あなたのコードには、.jsと.jsxの重複ファイルがたくさんあるようです。どちらか一方だけが必要なのは分かりますよね?

+0

jsファイルを削除すると問題が解決しましたか? –

+0

待ちます。私の悪い。私は404の部分を見逃した。それはあなたのヘッダーがあなたのページのすべてに表示されないという問題を解決することです。もう一度見てみましょう。 – user3379669

+0

他のコンポーネントと同様に、Routes.jsxファイルでReact.createClassを実行する必要があるということは、問題の一部のように見えます。しかし最終的には、.jsxファイルごとに.jsファイルは必要ありません。私が見ていることから、彼らはちょうど2つの異なる方法で書かれた全く同じことをやっています。 JSX形式のファイルは、読んだり保守したりする方が簡単なので、私はそれを主に選択します。 – user3379669

0

反応ルータv3.0を使用していたので、アンインストールして2.8.1バージョンをインストールしました。 #(つまりlocalhost /#/ news)はまだ表示されていますが、十分に近いです。ご協力いただきありがとうございます。

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

var useRouterHistory = ReactRouter.useRouterHistory; 
var createHashHistory = require('react-router/node_modules/history/lib/createHashHistory'); 
var appHistory = useRouterHistory(createHashHistory)({ 
queryKey:false 
}); 

var Header = require('./components/Header.jsx'); 
var News = require('./components/News.jsx'); 
var Photos = require('./components/Photos.jsx'); 

var Routes = (
<Router history={appHistory}> 
    <Route path="/" component={Header}> 
     <Route path="/news" component={News} /> 
     <Route path="/photos" component={Photos} /> 
    </Route> 
</Router> 
); 
module.exports = Routes; 
関連する問題