2016-11-01 11 views
0

私はFaceBookが提供するreact-relay-starter-kitに続いて、2つのルートを持つ簡単なアプリケーションを作成しました。

しかし、このコンテナのフラグメントにパラメータを渡しながら、あるルートのコンポーネントを他のルートと呼ぶようにしたいと思います。他の言葉で
、私が持っている:

ルータの設定:経路を変更して引数をリレーコンテナに渡す方法は?

Relay.injectNetworkLayer(
    new Relay.DefaultNetworkLayer(config.gqlUrl, {options...}) 
); 

ReactDOM.render(
    <Router 
     history={hashHistory} 
     render={applyRouterMiddleware(useRelay)} 
     routes={routes} 
     environment={Relay.Store}> 

     <Route path="/" component={App}/> 
     <Route path="/route1" component={Comp1} /> 
     <Route path="/route2" component={Comp2} queries={comp2Query}/> 
    </Router>, 
    document.getElementById('root') 
); 


器Comp1:

export default class Comp1 extends React.Component { 

    render() { 
     return ( 
     <div> 
      <span onClick={()=>{//go to comp2 with val=1}>1</span> 
      <span onClick={()=>{//go to comp2 with val=2}>2</span> 
      <span onClick={()=>{//go to comp2 with val=3}>3</span> 
     </div> 
     ); 
    } 
} 


器Comp2:

class Comp2 extends React.Component { 

    render() { 
     return ( 
     <div> 
      {this.props.info.text} 
     </div> 
     ); 
    } 
} 

export default Relay.createContainer(Comp2, { 
    initialVariables: { 
     value: //the value set by the Comp1 
    }, 
    fragments: { 
     info: (variables) =>{    
      return Relay.QL` 
       fragment on News{ 
        text  
       } 
      `}} 
}); 

私は2番目のルータに値を渡す方法を理解できませんでした。

答えて

0

すべてを正しく実行した場合、Comp2の履歴は小道具である必要があります。 そして、あなたはあなたのルート

this.props.history.pushState('/home', { some: 'state' }) 

の間でそれを行うために他の方法をナビゲートするためにそれを使用することができますがcontext.routerを使用することです。 {( `hashHistory.push:ヒントのhttps://github.com/ReactTraining/react-router/blob/master/docs/API.md

+0

おかげで、それはこのコードで私のために働い:あなた器Comp2のクラスを作成した後

Comp2.contextTypes = { router: React.PropTypes.object }; 

そして今ここに

詳細情報は

this.context.router.push({ pathname: '/home', query: { some: 'query' }, state: { some: 'state' } }); 
を追加 パス名: '/ home'、 クエリ:{modal:true}、 状態:{maValue:true} }); ' Relay.createContainer'にアクセスできません。渡された値をRelayコンテナにアクセスする方法を知っていますか? – tahayk

関連する問題