初めて Rails で React Router をセットアップしようとしています。ルーター上のリンクが機能し、期待どおりにハッシュが変更されますが、レンダリングされません。デバッガーで問題を絞り込んだところ、次のことがわかりました。
- 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));
});
})