0

この 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]

4

1 に答える 1