繁体   English   中英

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

[英]Define GraphQL object type in .graphql files not working

我正在尝试在 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. 在 args 中不需要ImagesArray类型:
@Arg('images', () => [InputImages]) images: InputImages[],
  1. 更新您的突变类型名称:
mutation CreateProduct(
    $name: String!
    $price: Int!
    $images: [InputImages!]!
) {
  # ...
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM