React native 如何将参数传递给graphql片段?
将参数传递给GraphQL查询很容易。但是GraphQL片段呢 这段代码包含一些完全正常的查询,带有一个参数(itemId)和一个关于我尝试执行的操作的提示(includeExtraResults):React native 如何将参数传递给graphql片段?,react-native,graphql,React Native,Graphql,将参数传递给GraphQL查询很容易。但是GraphQL片段呢 这段代码包含一些完全正常的查询,带有一个参数(itemId)和一个关于我尝试执行的操作的提示(includeExtraResults): export const GET_ITEM=gql` 查询GetItem($itemId:ID!,$includeExtraResults:BOOLEAN){ 容器{ 项目(项目ID:$itemId){ 项目ID 某地 innerItem(someExtraOption:$includeExtra
export const GET_ITEM=gql`
查询GetItem($itemId:ID!,$includeExtraResults:BOOLEAN){
容器{
项目(项目ID:$itemId){
项目ID
某地
innerItem(someExtraOption:$includeExtraResults){
…InnerItemFragment
}
}
}
}
${INNER_ITEM_FRAGMENT}
`;
导出常量内部项目片段=gql`
InnerItemType上的片段InnerItemFragment{
innerItemId
InnerItem(someExtraOption:$includeExtraResults){
某些领域
}
}
${INNER\u INNER\u ITEM\u FRAGMENT}
`;
导出常量内部项目内部项目片段=gql`
/*(此处未详细说明)*/
`;
当内部项作为内部项的一部分被自动查询时,我不希望它们返回过滤器工作所基于的字段。客户也不知道逻辑。相反,我想使用参数,逻辑由服务器端决定
尽管如此,他们的查询的实现方式还是希望(可选)参数“includeExtraResults”首先传递给GetItem
那么,有没有办法将“includeExtraResults”传递给内部片段?为了让这一切变得有意义,应该做些什么改变?在现实生活中,这是一个复杂的系统,具有许多级别的内部片段。如前所述,在使用片段变量之前,必须显式启用它们:
import { enableExperimentalFragmentVariables } from 'graphql-tag'
enableExperimentalFragmentVariables()
这至少可以让您在包含的片段中使用操作中定义的变量。请注意,这仍然是一个实验性功能,不是规范的正式部分——请参阅正在进行的对话。它不一样,但仍然相关: 您可以在片段中使用查询的变量:
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
}
}
}
}
这是来自的信息,您可以在stackoverflow中添加一个示例来演示语法吗?@Jeancalisti上述内容应该与您问题中的代码配合使用。除了启用该功能外,无需进行任何更改。语法有什么不清楚的地方?好吧,如果它“按原样”工作,如果includeExtraResults可以传递给innerItem,那么我就很好了。我想知道如果我在另一个没有参数的查询中包含该片段,编译器会如何反应,但这是另一天的查询。我认为
graphql标记
仍将解析该片段,但您肯定会遇到服务器错误,因为您的查询无法通过验证。