如何将GraphQL查询导入为字符串而不是对象

我为查询创建了一个.gql文件,并按如下所示进行导入:

const query = require("@/hello.gql");

但是,如果我将query变量登录到控制台,它将显示一个对象,而不是字符串。我该怎么做才能使导入的查询只是一个字符串?

nxg2062632 回答:如何将GraphQL查询导入为字符串而不是对象

因为,您仅导入查询,而不使用查询。

您可以使用阿波罗这样的查询方式

const yourQuery= require("@/hello.gql");

data(){
 return {
    queryResponse: []  
  }
}

apollo: {
    queryResponse: {
      prefetch: true,query: yourQuery
    }
  }

发现此问题后,您将获取查询并将响应保存在queryResponse

中 ,

使用apollo-client查询服务器时,提供的query参数必须是DocumentNode类型的对象,它是查询的AST表示。换句话说,如果您使用apollo-client,则不能仅将其作为字符串传递给查询,而是必须首先对其进行解析。通常使用graphql-tag库完成此操作。也可以利用graphql-tag的加载器或graphql-loader之类的加载器通过Webpack自动完成操作。如果您使用这样的加载程序,那么您导入的任何.gql文件都会自动为您解析为DocumentNode对象。

如果您不是在{em> 中使用apollo-client,则无需使用这些装载程序。如果您仍然希望将查询存储在单独的文件中并将其作为字符串导入,则应使用其他加载器,例如raw-loader

本文链接:https://www.f2er.com/2744787.html

大家都在问