运行“放大模拟”会重置对查询、突变的更改
Posted
技术标签:
【中文标题】运行“放大模拟”会重置对查询、突变的更改【英文标题】:Running 'amplify mock' resets the changes to queries, mutations 【发布时间】:2020-12-31 04:39:21 【问题描述】:场景:
我按照 AWS Amplify 文档here 上给出的步骤创建了一个反应项目
我对问题Do you want to generate/update all possible GraphQL operations queries, mutations and subscriptions?
在本地一切正常,我使用amplify mock
进行了测试
项目快完成时,我使用amplify push
推送到云端
我对以下(自动生成的)文件中的默认 list
、get
和 update
函数进行了更改:
src/graphql/queries
src/graphql/mutations
-
应用按预期运行
问题来了在我之前已经完成
amplify push
之后(第 6 步)我做了“放大模拟”(第 6 步)
我对@987654331@ 和src/graphql/mutations
文件所做的所有更改都在运行amplify mock
时被系统覆盖
我能够一次又一次地重现这种情况......每次我运行 amplify mock
时,它都会重置 src/graphql/queries
和 src/graphql/mutations
文件。
我的问题:
如何避免这种情况发生? 我可以创建新文件而不是更改src/graphql/queries
和src/graphql/mutations
文件吗?
或者有没有更好的解决方案或我缺少的步骤?
我的 package.json 中的相关依赖项:
"dependencies":
"@aws-amplify/auth": "^3.4.1",
"@aws-amplify/cli": "^4.28.2",
"@aws-amplify/ui-react": "^0.2.17",
"aws-amplify": "^3.1.0",
"react": "^16.13.1",
"react-dom": "^16.13.1",
"react-redux": "^7.2.1",
"react-router-dom": "^5.2.0",
"react-scripts": "3.4.3",
"redux": "^4.0.5"
,
【问题讨论】:
【参考方案1】:编辑:我现在自己也遇到了这种情况,并且有一个适合我的解决方案。
我看到的最佳选择是在 src/graphql
内创建您自己的文件以进行自定义查询/突变。例如,我想创建返回的数据少于自动生成的查询的查询。所以,我创建了src/graphql/queriesCustom.ts
(我使用的是打字稿,因此是.ts
)。在里面,我复制了我想要的查询,更新了变量名和操作名。运行 push
或 codegen
时,它会按预期更新自动生成的文件,但不会处理我的自定义文件。
这是一个例子。
在src/graphql/queries.ts
中有一个getUser
查询,如下所示:
export const getUser = /* GraphQL */ `
query GetUser($id: ID!)
getUser(id: $id)
id
type
username
email
avatar
name
bio
categories
createdAt
updatedAt
`;
我想对我的应用程序的一部分进行更简单的查询。所以,我创建了src/graphql/queriesCustom.ts
,复制了查询,并进行了适当的更新:
export const getUserSimple = /* GraphQL */ `
query GetUserSimple($id: ID!)
getUser(id: $id)
id
username
avatar
name
`;
请注意,您只是更改了操作名称,而不是查询名称。所以query GetUser
改为query GetUserSimple
。 getUser
的实际查询名称与在 appsync 中映射到解析器的名称相同。
【讨论】:
Schema.graphql 包含模型(模式)...我想要自己的突变/查询(在src/graphql
中)并编写它们并且它们起作用了...烦恼是让它们恢复到默认每个amplify mock
您是否尝试将它们放入 schema.graphql 文件中?突变/查询文件是自动生成的。我认为另一种选择是创建您自己的文件,例如 customMutations
来存储您的文件。以上是关于运行“放大模拟”会重置对查询、突变的更改的主要内容,如果未能解决你的问题,请参考以下文章