如何在Rails路由器上使用React Router(不使用react-rails gem)?
问题描述:
现在我正在使用browserify-rails来编译js文件,使Ruby on Rails应用程序上的React应用程序(使用out react-rails gem)。如何在Rails路由器上使用React Router(不使用react-rails gem)?
所以我想我们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
我
No route matches [GET] "/group" (From Rails)
所以我该如何解决这个问题,并使React路由器脱离Rails路由器?
谢谢!
答
如果要重定向所有的请求,单页,很简单:
# config/routes.rb
root 'dash_board#index'
get '*path', to: 'dash_board#index'
如果Rails会呈现你的阵营仪表板式#索引页上的组件,作出反应的路由器会从那里拦截它。
这是一个很好的做法吗?然后你做所有的行动非HTML和处理所有路由反应?试图学习反应路由的目的,谢谢! –
拥有“第一级”通配符路线可以解决某些宝石的问题。你可以做的是安装你的应用程序,例如在命名空间中。例如:https:// yourdomain/a。它更丑但更安全。 – Daniel