【发布时间】:2019-08-20 06:12:25
【问题描述】:
将参数传递给 GraphQL 查询很容易。但是 GraphQL 片段呢?
这段代码包含一些完全正常的查询,带有一个参数(itemId)和一个提示我尝试做什么(includeExtraResults):
export const GET_ITEM = gql`
query GetItem($itemId: ID!, $includeExtraResults:BOOLEAN) {
container {
item(itemId: $itemId) {
itemId
someField
innerItem(someExtraOption: $includeExtraResults) {
...InnerItemFragment
}
}
}
}
${INNER_ITEM_FRAGMENT}
`;
export const INNER_ITEM_FRAGMENT = gql`
fragment InnerItemFragment on InnerItemType {
innerItemId
innerInnerItem(someExtraOption: $includeExtraResults) {
someFields
}
}
${INNER_INNER_ITEM_FRAGMENT}
`;
export const INNER_INNER_ITEM_FRAGMENT = gql`
/* (not detailed here) */
`;
当内部项目作为内部项目的一部分被自动查询时,我不希望它们返回基于过滤器工作的 字段。客户也不知道逻辑。相反,我想使用参数,逻辑由服务器端决定。
不过,他们的查询以一种需要(可选)参数“includeExtraResults”的方式实现,该参数首先传递给 GetItem。
那么,有没有办法将“includeExtraResults”传递给内部片段?为了有意义,应该改变什么?在现实生活中,这是一个复杂的系统,具有许多层次的内部碎片。
【问题讨论】:
标签: react-native graphql