Rails - React Router不保留其props.children

时间:2015-10-07 01:46:25

标签: ruby-on-rails reactjs react-router react-rails

我是第一次尝试在Rails中设置React路由器。路由器上的链接工作并按预期更改散列,但它不会呈现。我已经使用调试器缩小了问题范围,并找到以下内容:

  • MyRoutes(第22行,在React创建路由器之前)有props.children。
  • App(第6行,渲染时)没有props.children。

发生了什么事?

var Route = ReactRouter.Route,
    Link = ReactRouter.Link;

var App = React.createClass({
  render: function(){
    //line 6
    return (
      <div>
        <h1>App</h1>
        <ul>
          <li><Link to="/todo">Todo</Link></li>
          <li><Link to="/comment">Comment</Link></li>
        </ul>

        {this.props.children}
      </div>
    )
  }
})

$(function(){
  var MyRoutes = (
    <Route path="/" handler={App}>
      <Route path="/todo" name="todo" handler={TodoList} />
      <Route path="/comment" name="comment" handler={Comment} />
    </Route>
  );
  //line 22
  ReactRouter.run(MyRoutes, function (Handler) {
    React.render(<Handler/>, $("#application").get(0));
  });
})

1 个答案:

答案 0 :(得分:0)

我看了react-router-rails存储库。将this.props.children替换为<RouteHandler {...this.props}/>。但请记住,您必须按如下方式“导入”RouteHandler:var RouteHandler = ReactRouter.RouteHandler;。那应该解决它。