我有一个包含两个“独立”数据集的组件,其中重新获取参数a
更改字段A
并重新添加参数b
更改字段B
。
export default createRefetchContainer(
Component,
{
a: graphql`
fragment Comp_a on Query @argumentDefinitions(
a: { type: "String!", defaultValue: "" },
) {
A(a: $a) {
name
}
}
`,
b: graphql`
fragment MainList_repo on Query @argumentDefinitions(
b: { type: "String!", defaultValue: "" }
) {
B(b: $b) {
name
}
}
`
},
{
a: graphql`
query CompRefetchQuery($a: String!) {
...Comp_a @arguments(a: $a)
}
`,
b: graphql`
query CompRefetchQuery($b: String!) {
...Comp_b @arguments(b: $b)
}
`
}
)
中继文档中没有这样的例子,我只是从片段容器中推断出来。问题在于调用
props.relay.refetch(vars => ({ data }), null)
会导致RelayModernGraphQLTag: Expected an operation, got
{} .
错误(将报告重新提交为呼叫网站)。
有没有办法在中继中创建这样的两个'refetch'子集?或者我是否需要创建两个重新获取容器并嵌套它们?