2016-09-14 6 views
5

今、私はbrowserify-railsを使ってjsファイルをコンパイルすることで、ReactアプリケーションをRuby on Railsアプリケーションの上に作っています。Railsルータの上でReact Routerを使うにはどうすればいいですか?

だから私は、これは私のmain.js

import React from 'react'; 
import ReactDOM from 'react-dom'; 
import { Router, Route } from 'react-router'; 
import { browserHistory } from 'react-router'; 

/*Import Component*/ 

import DashBoard from './components/dashboard'; 
import Group from './components/dashboard'; 

/* 
* 
* Routes 
* 
* */ 

var routes = (
    <Router history={browserHistory}> 
     <Route path="/" component={DashBoard}/> 
     <Route path="/group" component={Group}/> 
    </Router> 
); 

ReactDOM.render(routes , document.querySelector('#main')); 

ですが、私は

http://my.app.dev/group 

に行くとき、私は

を得たアプリ

の設定ルータに私たちreact-routerに試してみました

No route matches [GET] "/group" (From Rails) 

Soこれを修正し、React RouterをRailsのルータの上に置くにはどうすればいいですか?

ありがとうございます!

答えて

15

1つのページにすべてのあなたの要求をリダイレクトしたい場合は、それは簡単です:Railsはあなたのダッシュボード#インデックスページ上のコンポーネントに反応レンダリングする場合

# config/routes.rb 

root 'dash_board#index' 
get '*path', to: 'dash_board#index' 

、ルータはそこからそれを傍受しますの反応します。

+0

これは良い方法ですか?すべてのアクションを非HTMLにして、反応のすべてのルーティングを処理しますか?反応ルーティングの目的を知ろうとしています。ありがとう! –

+0

「第1レベル」のワイルドカードルートを使用すると、いくつかの宝石の問題に対処できます。あなたができることは、例えばネームスペースにあなたのアプリケーションをマウントすることです。たとえば、https:// yourdomain/a。それは醜いしかしより安全です。 – Daniel

関連する問題