react-router-rails服务器端呈现正确的组件,但绕过父组件

时间:2015-11-12 17:25:03

标签: ruby-on-rails browserify react-router serverside-javascript react-rails

我正在尝试使用fluxreact-railsreact-router-railsbrowserify在服务器端呈现的ruby轨道上编写应用程序,几乎基于{{ 3}}和this tutorial。到目前为止,我已经设法编写一个简单的两级路由配置,它似乎工作正常,因为正在呈现正确的处理程序。问题是除根网址(/)之外的所有网址都会忽略根处理程序(我的应用程序组件)。即:

我的routes.js.jsx是这样的:

// app/assets/javascripts/routes.js.jsx
var Route        = ReactRouter.Route,
    DefaultRoute = ReactRouter.DefaultRoute;
var MyApp        = require('./components/MyApp');
var Login        = require('./components/session/Login');
var Scrapping    = require('./components/scrapping/Scrapping');

var Router = (
  <Route name="app" path="/" handler={MyApp}>
    <DefaultRoute handler={Login} />
    <Route name="login" path="login" handler={Login}/>
    <Route name="scrapping" path="scrapping" handler={Scrapping}/>
       .
       .
       .
  </Route>
);

module.exports = Router;

每当我转到/时,都会呈现App --> Login。但是,如果我转到/login/scrapping,则只会分别呈现LoginScrapping

知道为什么会这样吗?我应该在哪里看? this repo 谢谢你的帮助!

1 个答案:

答案 0 :(得分:0)

问题在于,呈现的唯一组件是由服务器端react-router-rails生成的组件,但该应用程序未在客户端上进行自举。为了解决它,我包括一个文件来引导客户对客户做出反应。您可以在发布分支上检查工作设置un my repo(cuestión上的链接)。寻找一个名为app / assets / javascripts / app.js的文件或类似的东西。对不起,我不能更具体,但我正在旅行,我从我的智能手机回答。我希望它有所帮助。