我有这个input
用于更新块。我希望用户可以更新名称或内容或两者。现在的问题是,如果我只传递名称 GrapQL 会抛出一个错误Variable \"$updateBlockInput\" got invalid value { name: \"Updated again\" }; Field content of required type String! was not provided.
,例如 varsa。
我究竟做错了什么?
更新块.input.ts
import { InputType, Field } from '@nestjs/graphql';
import { IsOptional, IsNotEmpty } from 'class-validator';
@InputType()
export class UpdateBlockInput {
@IsOptional()
@IsNotEmpty()
@Field()
name?: string;
@IsOptional()
@IsNotEmpty()
@Field()
content?: string;
}
块解析器.ts
...
@Mutation(returns => BlockType)
updateBlock(
@Args('id') id: string,
@Args('updateBlockInput') updateBlockInput: UpdateBlockInput,
) {
return this.blockService.update(id, updateBlockInput);
}
...
突变
mutation(
$id: String!
$updateBlockInput: UpdateBlockInput!
) {
updateBlock(
id: $id
updateBlockInput: $updateBlockInput
) {
name
content
}
}
变量
{
"id": "087e7c12-b48f-4ac4-ae76-1b9a96bbcbdc",
"updateBlockInput": {
"name": "Updated again"
}
}