如何在反应路由器的meteor mongo查询中使用params

时间:2016-12-12 16:15:54

标签: mongodb reactjs meteor react-router

我无法将我的id参数显示在createContainer块中。

class Host extends Component {

    render() {
        return (
            <div>
                {console.log(this.props.routeParams.hostId)} //works great
            </div>
        )
    }
}
export default createContainer(() => {
    Meteor.subscribe('hosts');
    return {
        hosts: Hosts.findOne({_id: this.props.routeParams.hostId}), //returns undefined
    };
}, Host);

我想在这里通过id进行查询,但参数仅在类本身中可用。不在创建容器块中。

如何让我的参数显示在createContainer中?

1 个答案:

答案 0 :(得分:2)

'this'的范围可能会导致问题。也许在返回方法之外定义参数可能会起作用。你能试一试吗

export default createContainer(({routeParams}) => {
    const id = routeParams.hostId;
    Meteor.subscribe('hosts');
    return {
        hosts: Hosts.findOne({_id: id}), 
    };
}, Host);