Я воспользовался react-relay-starter-kit, предоставленным FaceBook, для создания простого приложения. с двумя маршрутами.
Но теперь я хочу, чтобы компонент одного маршрута вызывал другой маршрут, передавая параметр фрагменту этого контейнера.
Другими словами, у меня есть: < br/>
Конфигурация роутера:
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')
);
Комп1:
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
}
`}}
});
Я не мог понять, как передать значение второму маршрутизатору.