gpt4 book ai didi

javascript - 在 React Native 应用程序中使用 AWS Amplify 在 GraphQL Mutation 中获取错误

转载 作者:行者123 更新时间:2023-11-30 11:13:10 30 4
gpt4 key购买 nike

尝试执行 graphql 突变,其中突变应采用自定义类型。在 App Sync 架构中,我定义了这些自定义类型:

架构:

  input CreateConversationInput {
user: UserInput
doctor: DoctorInput
questionsAndAnsers: [ConversationQAInput]
pet: UpdatePetInput
}

React native 代码:

  const createConversationInput = {

user: {
username: "deep",
userType: "Patient",
fullName: "Deep A"
},
doctor: {
name: "Raman",
speciality: "dog",
doctorId: "0bd9855e-a3f2-4616-8132-aed490973bf7"
},
questionsAndAnswers: [{ question: "Question 1", answer: "Answer 1" }, { question: "Question 2", answer: "Answer 2" }],
pet: { username: "deep39303903", petId: "238280340932", category: "Canine" }


}

API.graphql(graphqlOperation(CreateConversation, createConversationInput)).then(response => {

console.log(response);

}).catch(err => {
console.log(err);
});

我这样定义突变:

export const CreateConversation = `mutation CreateConversation( $user: Object, 
$doctor: Object, $questionsAndAnswers: Object, $pet: Object ) {

createConversation(

input : {

user: $user
doctor: $doctor
questionsAndAnswers: $questionsAndAnswers
pet: $pet
}
){
username
createdAt

}

}`;

突变在 AWS GraphQL 控制台中正常工作。但是,在 native react 应用程序中,我收到错误。

错误:

"Validation error of type UnknownType: Unknown type Object".

我认为这个错误是因为我在 mutations 中将类型定义为 Object 而不是 AWS Schema 中定义的实际类型。如果这是问题所在,我该如何在 React Native 代码中定义自定义类型?

最佳答案

您应该只需要更改定义变量的方式:

mutation CreateConversation(
$user: UserInput,
$doctor: DoctorInput,
$questionsAndAnswers: [ConversationQAInput],
$pet: UpdatePetInput
) {
createConversation(input: {
user: $user
doctor: $doctor
questionsAndAnswers: $questionsAndAnswers
pet: $pet
}) {
username
createdAt
}
}

在 GraphQL 中使用变量时,您需要为该变量指定输入类型(或标量)。然后将其与您使用该变量的任何参数所期望的类型进行比较。这里的输入类型指的是你的模式中的一种类型,而不是任何与 JS 相关的东西,所以你不需要在你的代码中做任何特殊的事情。

关于javascript - 在 React Native 应用程序中使用 AWS Amplify 在 GraphQL Mutation 中获取错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52793416/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com