【发布时间】:2020-12-05 07:02:52
【问题描述】:
我不明白这里发生了什么。
这是我的架构:
type MonthResume @model @auth(rules: [{allow: owner, identityClaim: "sub"}]){
id: ID!
incomes: Float!
spendingByCategory: [Category]
}
type Category @model @auth(rules: [{allow: owner, identityClaim: "sub"}]){
id: ID!
name: String!
amount: Float!
}
这是 Amplify 提供给我的自动生成的更新突变:
export const updateMonthResume = /* GraphQL */ `
mutation UpdateMonthResume(
$input: UpdateMonthResumeInput!
$condition: ModelMonthResumeConditionInput
) {
updateMonthResume(input: $input, condition: $condition) {
id
incomes
spendingByCategory {
id
name
amount
createdAt
updatedAt
owner
}
createdAt
updatedAt
owner
}
}
`;
这是我的意见:
{
"input": {
"id": "d7f-ee2971fd3ae5",
"incomes": 220,
"spendingByCategory": null,
"createdAt": "2020-08-15T17:06:22.192Z",
"updatedAt": "2020-08-15T17:06:22.192Z",
"owner": "subId"
}
}
我只想更新收入金额,因此我以这种方式调用 api:
const input = {
incomes: 0,
}
await API.graphql(graphqlOperation(updateMonthResume, input));
然后,我得到了错误。
我不明白,我不想更新超过收入,我需要改变我的输入吗?但是我为 objetc 支出分类发送了一个空值(Amplify 会自动执行)。
input CreateMonthResumeInput {
id: ID
incomes: Float!
}
【问题讨论】:
-
输入对象只能具有
UpdateMonthResumeInput类型中定义的属性,不能更多 - 可以更少(如果可以为空/不需要) - 但都是必需的 -
其余属性由 Amplify 默认定义(createdAt、updatedAd 和 owner)。问题是我只想输入要更新的属性,仅此而已,但是当 Amplify 发送输入时,它会将支出分类类别添加为 null,这给了我错误。
-
UpdateMonthResumeInput 定义?
标签: graphql aws-amplify