У меня есть эта простая мутация, которая отлично работает
type Mutation {
addJob(
url: String!
description: String!
position: String!
company: String!
date: DateTime!
tags: [String!]!
): Job
}
Преобразователь мутаций
function addJob(parent, args, context, info) {
console.info('Tags => ', args.tags)
// const userId = getUserId(context)
return context.db.mutation.createJob(
{
data: {
position: args.position,
componay: args.company,
date: args.date,
url: args.url,
description: args.description,
tags: args.tags
}
},
info
)
}
однако, как только я попытался поместить массив строк (тегов), как вы видите выше, я не могу заставить его работать, и я получил эту ошибку
Error: Variable "$_v0_data" got invalid value { ... , tags: ["devops", "aws"] }; Field "0" is not defined by type JobCreatetagsInput at value.tags.
Если я назначил тегам в мутации пустой массив, проблем не возникнет, однако, если я поставлю одно строковое значение ["DevOps"], например, я получу ошибку
@Peter Добавил.
Вы недавно меняли схему мутации? У вас prisma deploy? Похоже, что type JobCreatetagsInput не ожидает этого типа String.
@Elfayer Нет, он вообще не изменился, и если я попробовал развернуть Prisma, схема будет актуальной, и об этом - JobCreatetagsInput, введите JobCreatetagsInput {set: [String!]}





Проблема была в функции распознавателя, по-видимому, поскольку я обнаружил здесь, мне нужно назначить список тегов внутри объекта в аргументе set, как в приведенном ниже коде.
function addJob(parent, args, context, info) {
return context.db.mutation.createJob(
{
data: {
position: args.position,
componay: args.company,
date: args.date,
url: args.url,
description: args.description,
tags: { set: args.tags }
}
},
info
)
}
Спасибо, что поделились, работает как брелок, в доке об этом не сказано.
@ Merlyn007 рад, что это помогло ^^
пожалуйста, добавьте код мутации