.gql
我为我的查询创建了一个文件,并像这样导入它:
const query = require("@/hello.gql");
但是,如果我将query
变量记录到控制台,它会显示一个对象,而不是字符串。我该怎么做才能让我导入的查询只是一个字符串?
.gql
我为我的查询创建了一个文件,并像这样导入它:
const query = require("@/hello.gql");
但是,如果我将query
变量记录到控制台,它会显示一个对象,而不是字符串。我该怎么做才能让我导入的查询只是一个字符串?
使用 查询服务器apollo-client
时,提供的query
参数必须是类型的对象DocumentNode
,这是查询的 AST 表示。换句话说,如果您使用apollo-client
,您不能只将查询作为字符串传递给它,您必须先对其进行解析。这通常使用graphql-tag
库来完成。它也可以通过 webpack 使用像graphql-tag
's loader 或graphql-loader
. 如果您使用这样的加载器,那么.gql
您导入的任何文件都会自动DocumentNode
为您解析为对象。
如果您不使用apollo-client
,则无需使用这些加载器。如果您仍想将查询存储在单独的文件中并将它们作为字符串导入,您应该使用不同的加载器,例如raw-loader。
因为,您只是导入查询,而不是使用它。
您可以使用 apollo 像这样使用该查询
const yourQuery= require("@/hello.gql");
data(){
return {
queryResponse: []
}
}
apollo: {
queryResponse: {
prefetch: true,
query: yourQuery
}
}
这样,您将获取查询并将响应保存在 queryResponse