У меня есть клиентский проект React и API Node.js / GraphQL в двух отдельных репозиториях.
В моем приложении React я хочу передать объект как тип переменной в свою мутацию. Вот как выглядит моя мутация:
export const CREATE_SPEAKER = gql`
input Expertise {
title: String!
domain: String!
}
mutation CreateSpeaker(
$name: String!
$age: String!
$nationality: String!
$avatar: String!
$expertise: Expertise!
) {
createSpeaker(
speakerInput: {
name: $name
age: $age
nationality: $nationality
avatar: $avatar
expertise: $expertise
}
) {
name
age
nationality
avatar
expertise {
title
domain
}
}
}
`;
В моем проекте Node.js у меня есть следующая схема:
input SpeakerInput {
name: String!
age: String!
expertise: ExpertiseInput!
nationality: String!
avatar: String
}
input ExpertiseInput {
title: String!
domain: String!
}
И мой преобразователь:
createSpeaker: async args => {
const { name, age, nationality, avatar, expertise } = args.speakerInput;
const newSpeaker = new Speaker({
name,
age,
nationality,
avatar,
expertise: {
title: expertise.title,
domain: expertise.domain
}
});
try {
return await newSpeaker.save();
} catch (error) {
throw ("Failed to create speaker:: ", error);
}
}
Но я получаю следующее сообщение об ошибке при попытке создать динамик:
Uncaught (в обещании) Инвариантное нарушение: определения типа схемы не допускаются в запросах. Найдено: "InputObjectTypeDefinition"
Есть предложения / идеи, как это сделать?