如何在Rails路由器上使用React Router(不使用react-rails gem)? [英] How to use React Router on top of Rails router (not using react-rails gem)?
本文介绍了如何在Rails路由器上使用React Router(不使用react-rails gem)?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
现在我使用 browserify-rails 来编译js文件。
Now i am making React app on top off Ruby on Rails app (with out react-rails gem) by using browserify-rails to compile js files.
所以我试着给我们 react-router 来配置应用程序的路由器
So i tried to us react-router to config router of the app
这是我的main.js
This is my 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
我得到了
No route matches [GET] "/group" (From Rails)
那么如何解决这个问题并将Ract路由器置于Rails路由器之上呢?
So how can i fix this and make React Router on top off Rails router?
谢谢!
推荐答案
如果您想将所有请求重定向到单页,这很简单:
If you want to redirect all your request to single page, that's easy:
# config/routes.rb
root 'dash_board#index'
get '*path', to: 'dash_board#index'
如果Rails会在DashBoard #index页面上呈现您的React组件,React的路由器将从那里拦截它。
If Rails will render your React components on DashBoard#index page, React's router will intercept it from there.
这篇关于如何在Rails路由器上使用React Router(不使用react-rails gem)?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文