1

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

  • MyRoutes(第 22 行,在 React 创建路由器之前)有 props.children。
  • 应用程序(第 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));
  });
})
4

1 回答 1

0

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

于 2016-05-02T18:19:48.797 回答