class ChildComponent extends React.Component { render() { const {hello} = this.props.greetings; return

{hello}

; } } const ChildContainer = Relay.createContainer(ChildComponent, { initialVariables: { name: 'A', }, fragments: { greetings: () => Relay.QL` fragment on Greetings { hello(name: $name), } `, } }); class ParentComponent extends React.Component { render() { // *** have to pass `name` prop here *** this.props.relay.setVariables({ name: "Name", }); return ( ); } } const ParentContainer = Relay.createContainer(ParentComponent, { initialVariables: { name: 'C', }, fragments: { greetings: ({name}) => Relay.QL` fragment on Greetings { ${ChildContainer.getFragment('greetings', {name})}, } `, } }); class Route extends Relay.Route { static routeName = 'Hello'; static queries = { greetings: () => Relay.QL` query GreetingsQuery { greetings, } `, }; } ReactDOM.render( , mountNode );