我的架构的一般结构是这样的:
- 一个例程可以有好几天。
- 一天可以进行多次练习。
我有一个由 AWS Amplify CLI 生成的 GraphQL 突变。
突变看起来像这样:
export const createRoutine = /* GraphQL */ `
mutation CreateRoutine(
$input: CreateRoutineInput!
$condition: ModelRoutineConditionInput
) {
createRoutine(input: $input, condition: $condition) {
id
name
description
days {
items {
id
routineID
name
description
exercises {
items {
id
dayID
name
description
reps
sets
}
}
}
}
}
}
`;
当我像这样进行 GraphQL 突变时:
const inp = {
id: id,
name: "Test Routine Dynamic",
description: "Description for TRD",
days: {
items: {
id: id,
routineID: id,
name: "Day 1 of TRD",
description: "Description for Day 1 of TRD",
exercises: {
items: {
id: id,
dayID: id,
name: "Bench Press",
description: "Push the bar",
reps: "3",
sets: "5",
},
},
},
},
我从 IDE 中收到一条错误消息: 对象文字可能只指定已知属性,并且类型中不存在“天数”
因为输入的类型CreateRoutineInput
如下所示:
export type CreateRoutineInput = {
id?: string | null,
name: string,
description?: string | null,
};
为什么生成的 CreateRoutineInput 类型不允许我指定嵌套项“Days”?我对 GraphQL 有点陌生,所以也许这是不应该做的事情。
非常感谢任何帮助,谢谢。