我有2个(希望是新手)需要社区提出的问题:
(1)我对应用程序的schema.graphql文件进行了更改。如何确保更新相应的query.js,mutations.js,subscriptions.js文件?以前,这些命令是在我运行amplify push命令时用于更新的,但现在它们不再使用。
(2)如何使用aws扩增进行部分突变?例如:如果一个突变具有fullName,城市,我如何在不从前端应用程序传递城市的情况下更新fullName? 我可以在第一个屏幕中编辑全名,然后在第二个屏幕中编辑城市。如果我没有在第一个屏幕的变体中通过城市,它将被覆盖为空。
这是突变的样子:
mutations.js:
const updateUserProfile =
mutation UpdateUserProfile(
$input: UpdateUserProfileInput!
$condition: ModelUserProfileConditionInput
) {
updateUserProfile(input: $input, condition: $condition) {
id
fullName
city
createdAt
updatedAt
owner
}
}
;
userprofile.vue
import { Auth } from 'aws-amplify';
import { createUserProfile, updateUserProfile} from '@/graphql/mutations';
const userProfileInput={
id:userId,
fullName:'Ajit Goel',
};
await API.graphql(graphqlOperation(updateUserProfile, {input: userProfileInput}));
schema.graphql:
type UserProfile @model
@key(fields:["id"])
@auth(rules: [{allow: owner}])
{
id: String!
fullName: String
city:String
}
运行更新突变时控制台中的错误:
答案 0 :(得分:1)
让我尝试帮助您
放大推送完成后,您应该能够看到更改。只需确保保存文件更改,然后再尝试。
取决于您的架构城市,可以将其设置为带有感叹号的必填项。在这种情况下,您可以删除感叹号或将城市设置为空字符串。如果以后需要进行特定操作,则可以在解析器中添加此检查。