パラメータを処理する React コンポーネントの Route からパラメータへのアクセスを取得するために、いくつかの例に従いました。ただし、or内からのconsole.log
onの結果は、ルートからのが含まれていると予想される場合は常にです。this.props
render
componentDidMount
{}
gameId
gamesView
client.js
ルーターを起動します。
// HTML5 History API fix for local
if (config.environment === 'dev') {
var router = Router.create({ routes: routes });
} else {
var router = Router.create({ routes: routes, location: Router.HistoryLocation });
}
router.run(function(Handler) {
React.render(
<Handler />,
document.getElementById('app')
);
});
routes.js
簡単にするためにいくつかのルートを削除しています。
var routes = (
<Route name='home' path='/' handler={app}>
<DefaultRoute handler={home} location="/" />
<Route name='gamesView' path='/games/:gameId' handler={gamesView} />
</Route>
);
module.exports = routes;
...そして、app.js
これは他のルートをラップし{...this.props}
ますRouteHandler
。私console.log(this.props)
が関数内からrender
ここにいる場合も戻ります{}
:
var App = React.createClass({
render: function() {
return (
<div className='container'>
<div className='row'>
<RouteHandler {...this.props} />
</div>
</div>
);
}
});
module.exports = App;
最後にgamesView
、props オブジェクトが表示されると予想される React コンポーネントです。ここthis.props
にも{}
あり、次の結果はエラーになりますTypeError: $__0 is undefined var $__0= this.props.params,gameId=$__0.gameId;
。
var GamesView = React.createClass({
render: function() {
var { gameId } = this.props.params;
return (
<div>
<h1>Game Name</h1>
<p>{gameId}</p>
</div>
);
}
});
module.exports = GamesView;
誰にもアイデアはありますか?