如何在Rails路由器上使用React Router(不使用react-rails gem)? [英] How to use React Router on top of Rails router (not using react-rails gem)?

查看:74
本文介绍了如何在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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆