2016-12-12 18 views
2

私のidパラメータをcreateContainerブロックに表示することができません。反応ルータでmeteor mongoのクエリでparamsを使用する方法

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に表示するにはどうすればよいですか?

答えて

2

「this」の範囲は問題を引き起こす可能性があります。 returnメソッドの外部でparamを定義するとうまくいくかもしれません。これを試してもらえますか?

​​
+0

お返事ありがとうございました!この場合、この範囲はこのウィンドウを参照します。私はここから流星にアクセスすることができますが、反応ルータなどはアクセスできません。 –

+0

私のコメントを編集できませんでした:)何でも、元の答えを編集しました。 routeParamsを分解し、それを渡すと役立つかもしれません。あなたもこれを試すことができますか? –

+0

これは素晴らしい人です!ありがとう! –

関連する問題