微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在 .graphql 文件中定义 GraphQL 对象类型不起作用

如何解决在 .graphql 文件中定义 GraphQL 对象类型不起作用

我正在尝试在 type-graphql 中进行更改,其中一个参数是 Object 所以:

@Mutation(() => Boolean)
async createProduct(
    @Arg('name',() => String) name: string,@Arg('price',() => Int) price: number,@Arg('images',() => [Inputimages]) images: [ImagesArray],) {
    // Code
}

所以我为参数“图像”创建了一个输入类型:

@InputType()
class Inputimages {
  @Field(() => String)
  filename: string;
}

还有一个对象类型:

@ObjectType()
export class ImagesArray {
    @Field(() => String)
    filename: string
}

现在我正在尝试使用 GraphQL 代码生成器,我需要在客户端编写查询和更改作为 .graphql 文件扩展名,所以我有

mutation CreateProduct(
    $name: String!
    $price: Int!
    $images: [ImagesArray]!
) {
    createProduct(
        name: $name
        price: $price
        images: $images
    );
}

现在当我尝试运行 "npm run gen" 时说:

GraphQLDocumentError:未知类型“ImagesArray”。

我尝试在顶部添加

type ImagesArray {
    filename: String
}

不能再工作了,知道吗?

解决方法

  1. 您不需要输入 ImagesArray 参数:
@Arg('images',() => [InputImages]) images: InputImages[],
  1. 更新您的突变类型名称:
mutation CreateProduct(
    $name: String!
    $price: Int!
    $images: [InputImages!]!
) {
  # ...
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。