2016-09-25 4 views
0

私はReact 15.0.1ユニバーサルアプリケーションのルータとしてこのコードを手に入れました。リアクターのバージョンは2.3.0です。リアクタベースのURLが正常に動作しない

import React from 'react'; 
import { createHistory } from 'history'; 
import { Router, Route, IndexRoute, Redirect, useRouterHistory } from 'react-router'; 

import MainLayout from './../views/layout/mainLayout.jsx'; 
import Home from './../views/home.jsx'; 
import About from './../views/about.jsx'; 

import Error404 from './../views/404.jsx'; 

const browserHistory = useRouterHistory(createHistory)({ 
    basename: '/example-url' 
}); 

module.exports = (
    <Router history={browserHistory}> 
    <Route path='/' component={MainLayout}> 
     <IndexRoute component={Home} /> 
     <Route path='about/' component={About} /> 
     <Route path='*' component={Error404} /> 
    </Route> 
    </Router> 

問題は、私は次のエラーを取得していますことを、次のとおりです。

不変違反:ブラウザの履歴は、このソリューションは、私のサーバーでは動作しませんようだDOM

を必要とします私のルートのベースネームを設定しようとしています。

ベースネームを忘れてしまっても、すべて問題はありませんが、私のアプリケーションはスパのように振る舞いません(クライアント側のルートが見つからないと思います)。ここで

は私のサーバー側のエントリ・ポイントの一部である(app.js):

import routes from './client/routers/routes.jsx'; 

const engine = ReactEngine.server.create({ 
    routes: routes, 
    routesFilePath: path.join(__dirname, 'client/routers/routes.jsx'), 
}); 

app.engine('.jsx', engine); 
app.set('views', __dirname + '/client/views'); 
app.set('view engine', 'jsx'); 
app.set('view', ReactEngine.expressView); 

app.get('*', function(req, res) { 
    res.render(req.url, { metadata: res.data.metadata,baseUrl: res.data.baseUrl, url: res.data.url }); 
}); 

は誰も助けてくださいもらえますか?私はドキュメントを読んでいると思われますが、これは正しい方法であり、多くの人々がこのソリューションをサポートしているようですが、私はここで立ち往生しています。

ありがとうございました

+0

私は明確にしたいと思います:エラーはgulpによって投げられます。 – rmartrenado

+0

私はまだこれに固執しています。多くの人が同じ問題を抱えていなければならないと確信しています... – rmartrenado

+0

問題は、私がPayPalの反応エンジンを使ってサーバー側から私の意見を表示しているという事実と関係があります。 – rmartrenado

答えて

0

あなたの履歴バージョンは何ですか? あなたの反応ルータのバージョンがv2/v3の場合、履歴バージョンはv3、v4は反応ルータv4の場合

関連する問題