Javascript React组件this.props始终为空

Javascript React组件this.props始终为空,javascript,reactjs,reactjs-flux,react-router,react-router-component,Javascript,Reactjs,Reactjs Flux,React Router,React Router Component,我遵循了of,试图从处理参数的React组件中的路由访问参数。然而,当我期望它包含来自gamesView路径的gameId时,从render或componentDidMount内部的console.log对this.props的结果总是{} 启动路由器的client.js: // HTML5 History API fix for local if (config.environment === 'dev') { var router = Router.create({ routes:

我遵循了of,试图从处理参数的React组件中的路由访问参数。然而,当我期望它包含来自
gamesView
路径的
gameId
时,从
render
componentDidMount
内部的
console.log
this.props
的结果总是
{}

启动路由器的
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')
    );
});
…和包装其他路线的
app.js
,我在
RouteHandler
中尝试了使用和不使用
{…this.props}
。如果我
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;

有人有什么想法吗?

只有在路由器中定义的组件上才能看到这些参数<代码>应用程序对它们一无所知。但是,如果您将
console.log(this.props.params)
放在
gamesView
组件中,您应该会看到它们。

事实证明,这是由于我使用了旧版本的RR(v0.11.6)

查看它显示我需要使用一个
Router.State
mixin,然后通过
var gameId=this.getParams().gameId获取期望的参数

在不升级RR的情况下,
GamesView的原始示例的工作版本将变为:

var React = require('react');
var Router = require('react-router');
var { Route, RouteHandler, Link } = Router;

var GamesView = React.createClass({

    mixins: [ Router.State ],

    render: function() {
        var gameId = this.getParams().gameId;

        return (
            <div>
                <h1>Game Name</h1>
                <p>{gameId}</p>
            </div>
        );
    }
});

module.exports = GamesView;
var React=require('React');
var-Router=require('react-Router');
var{Route,RouteHandler,Link}=路由器;
var GamesView=React.createClass({
mixins:[路由器.状态],
render:function(){
var gameId=this.getParams().gameId;
返回(
游戏名称
{gameId}

); } }); module.exports=GamesView;
应该是
@pkurek吗?我相信我应该能够使用,而不必在RouteHandler中明确命名道具。不幸的是,这也不起作用@Hal,我以前尝试过,并编辑了上面的原始示例,以显示当我尝试从处理该路由的组件访问
this.props
时会发生什么。
var GamesView = React.createClass({
    render: function() {
        var { gameId } = this.props.params;

        return (
            <div>
                <h1>Game Name</h1>
                <p>{gameId}</p>
            </div>
        );
    }
});

module.exports = GamesView;
var React = require('react');
var Router = require('react-router');
var { Route, RouteHandler, Link } = Router;

var GamesView = React.createClass({

    mixins: [ Router.State ],

    render: function() {
        var gameId = this.getParams().gameId;

        return (
            <div>
                <h1>Game Name</h1>
                <p>{gameId}</p>
            </div>
        );
    }
});

module.exports = GamesView;