У меня есть вложенная схема в graphql, и я пытаюсь использовать функцию обновления, созданную с помощью ampify, для обновления вложенной части схемы для определенного c идентификатора информации. У меня есть идентификатор таблицы, которую я хочу обновить, и я хочу обновить раздел hasBooks. Пытаясь использовать мой текущий код, я получаю две ошибки в зависимости от того, что я пробую:
"Ввод переменных содержит имя поля 'hasBooks', которое не определено для типа входного объекта 'UpdateInformationInput'"
и
"Переменная 'input' имеет принудительное значение Null для типа NonNull 'UpdateInformationInput!'"
схема:
type Information @model @searchable{
id: ID!
firstName: String!
lastName: String!
phoneNumber: Int
password: Int
timestamp:String!
hasBooks: [Books] @connection (name:"InformationBooks")
}
type Books @model {
id: ID!
firstName: String!
lastName: String!
title: String!
information: Information @connection
(name:"InformationBooks")
}
export const updateInformation = /* GraphQL */ `
mutation UpdateInformation(
$input: UpdateInformationInput!
$condition: ModelInformationConditionInput
) {
updateInformation(input: $input, condition: $condition) {
id
firstName
lastName
phoneNumber
password
timestamp
hasBooks {
items {
id
firstName
lastName
title
}
nextToken
}
}
}
код:
const initialState = {
firstName: '',
lastName: '',
title:''
}
const [formState, setFormState] = useState(initialState)
const [contactInfos, setContactInfos] = useState([])
async function addContactInfo() {
try {
const contactInfo = { ...formState }
setContactInfos([...contactInfos, contactInfo])
await API.graphql(graphqlOperation(updateInformation,
{input: { hasBooks: contactInfo, id:caseID}}))
} catch (err) {
console.log('error creating todo:', err)
}
}