我为查询创建了一个.gql
文件,并按如下所示进行导入:
const query = require("@/hello.gql");
但是,如果我将query
变量登录到控制台,它将显示一个对象,而不是字符串。我该怎么做才能使导入的查询只是一个字符串?
我为查询创建了一个.gql
文件,并按如下所示进行导入:
const query = require("@/hello.gql");
但是,如果我将query
变量登录到控制台,它将显示一个对象,而不是字符串。我该怎么做才能使导入的查询只是一个字符串?
因为,您仅导入查询,而不使用查询。
您可以使用阿波罗这样的查询方式
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。