react-native - 如何将参数传递给graphql片段?
问题描述
将参数传递给 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”传递给内部片段?为了有意义,应该改变什么?在现实生活中,这是一个复杂的系统,具有许多层次的内部碎片。
解决方案
它不一样,但仍然相关:
您可以在片段中使用查询的变量:
query HeroComparison($first: Int = 3) {
leftComparison: hero(episode: EMPIRE) {
...comparisonFields
}
rightComparison: hero(episode: JEDI) {
...comparisonFields
}
}
fragment comparisonFields on Character {
name
friendsConnection(first: $first) {
totalCount
edges {
node {
name
}
}
}
}
此信息来自官方指南
推荐阅读
- c++ - 如何在调试中使用 Visual Studio 正确编译 WebRTC?
- unity3d - 如何在 Vuforia 中获得反射面?
- java - OptionalBinding 使用 Guice 避免用户绑定
- sql - 如何在触发器更新时对多行求和?
- quickfix - 10000 到 19999 之间的 FIX 协议标签有什么用?
- android - Kotlin 错误:Dagger 不支持注入私有字段 private boolean isAppNull;
- google-cloud-ml - Google 推荐 AI 样本休息请求
- react-native - 如何在 react-native 中显示动画 svg?
- optimization - Julia 等价于 python Continuous_groups() 函数
- go - 接口和实现