我正在使用Relay并且react-router-relay
正在尝试组合几个Relay容器.内部容器需要一个查询片段变量,该变量必须从路由器向下传递到其父容器.它没有得到这个变量.
以下是代码的外观:
// A "viewer": const UserQueries = { user: () => Relay.QL`query { user }` }; // A route to compose a message:// A container: const ComposeContainer = Relay.createContainer( Compose, { initialVariables: { id: null }, fragments: { user: () => Relay.QL` fragment on User { ${ BodyContainer.getFragment('user') } // other fragments } ` } } ); // And the composed container: const BodyContainer = React.createContainer( Body, { initialVariables: { id: null }, fragments: { user: () => Relay.QL` fragment on User { draft(id: $id) { // fields } } ` } } );
内部的草案字段BodyContainer
永远不会$id
从路径参数中获取.签名RelayContainer.getFragment()
有参数似乎让你传递参数和变量,但我不知道如何使用它.
你的user
片段
必须是这样的:
user: ({ id }) => Relay.QL`
fragment on User {
${BodyContainer.getFragment('user', { id })}
// other fragments
}
`
另外,当你
从中作曲时
.你还需要传递id
作为道具,例如
另请参阅https://github.com/facebook/relay/issues/309上的其他讨论.