Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
React native 如何将参数传递给graphql片段?_React Native_Graphql - Fatal编程技术网

React native 如何将参数传递给graphql片段?

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

将参数传递给GraphQL查询很容易。但是GraphQL片段呢

这段代码包含一些完全正常的查询,带有一个参数(itemId)和一个关于我尝试执行的操作的提示(includeExtraResults):

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标记
仍将解析该片段,但您肯定会遇到服务器错误,因为您的查询无法通过验证。