この GraphQL スキーマを作成し、Amplify 経由で AppSync に渡しました。
type Member @model {
id: ID!
name: String!
}
type Team @model {
id: ID!
title: String!
members: [Member]
}
AWS Amplify は、チームの更新のために次のミューテーションを生成しました。
export const updateTeam = /* GraphQL */ `
mutation UpdateTeam(
$input: UpdateTeamInput!
$condition: ModelTeamConditionInput
) {
updateTeam(input: $input, condition: $condition) {
id
name
...
}
}
`;
次の方法でチームを更新したいと考えています。
const doSomething = async (id) => {
try {
const team = teams[id];
team.title = // new title
// cut off automatically added bits
const teamData = await API.graphql(
graphqlOperation(updateTeam, { input: team })
);
} catch (error) {
console.error(`Mutation failed`, error);
}
};
を正常に読み取っており、それがチーム オブジェクトの一部であるteam
ことがわかります。members
ただし、エラーが発生します。
message: "The variables input contains a field name 'members' that is not defined for input object type 'UpdateTeamInput' "
これをどこでどのように修正すればよいですか? つまり、次のようなものを使用する必要があります。
...
graphqlOperation(updateTeam, { input: team, members: team.members })
...
私はmembers
オブジェクトに触れていませんがteam[id]
?