amazon-web-services - 发布 AWS Amplify GraphQL 突变时如何避免在数组中创建重复项
问题描述
前言:我是 GraphQL 和 Amplify 的新手。
我有一个包含两个数组的用户对象,一个称为preferred_genres
,另一个称为preferred_characters
。我有一个个人资料页面,用户可以在其中编辑他们的个人资料并将项目添加到这些数组中。
AWS Amplify 提供的更新突变似乎只是将元素添加到数组中,而不会删除它们。如果在我的 UI 上我从列表中删除一个项目,然后提交更新突变,则该项目不会从我的后端中删除。如果我将一个项目添加到数组中,该项目将添加到后端,但我最终也会得到那些已经在后端的重复值。
我想要做的是用我从前端提交的数据覆盖后端的数组。我错过了一些明显的东西吗?在 GraphQL 中是否有更合适的方法来实现这一点?
架构
type User @model {
id: ID!
...
preferred_characters: [Character]
preferred_genres: [Genre]
...
}
解决方案
DataStore 的冲突解决文档:
更新冲突解决方案:
- 一种方法是按照文档的建议更新它(我这样做的方式)。
- 我检查了哪些文件发生了变化,唯一重要的更新密钥可以在
amplify/backend/api/<yourApi>/transform.conf.json
从:
至:
推荐阅读
- windows - win32:互斥锁释放的速度不够快?
- python - 在拱门上找到 x 和 y
- r - 在ggplot中添加两个图例
- flutter - 用户交换时如何取标签的索引值?
- linux - Kubernetes Job 提供 json 文件输入
- javascript - React 在传递给函数时发送地图中的最后一个元素
- python - 如何通过拆分'\ n'来格式化列表元素?
- javascript - 如何在 typescript 生成的代码中避免 eslint 错误(意外的链式赋值 no-multi-assign)?
- reactjs - React JS - 传递数据和另一个常量变量的有效方式
- microsoft-teams - 在 Microsoft Teams iOS 应用中停止拉取刷新