【发布时间】:2021-10-06 21:00:59
【问题描述】:
我有一个关于 Apollo 客户端在调度更新突变时的行为的问题。
我有一个小应用程序可以获取数据并允许您对其进行修改。修改后,更新突变被发送到 graphQL。由于单个项目的更新会触发 Apollo 的自动缓存更新,因此可以在 UI 上立即看到更改。
但是,我注意到当我在更新后刷新页面时,我之前获取的项目的顺序发生了变化,最近更新的项目位于列表的末尾。
我只是想知道这是否是预期的正常行为,是否有办法强制缓存在更新后保持相同的顺序?
编辑:这是我的解析器、突变和 useMutation 调用的代码。
解析器:
async UpdateUser(parent, args, ctx, info) {
const { id, input } = args;
const updatedUser = await ctx.prisma.user.update({
where: {
id,
},
data: {
...input,
},
});
return updatedUser;
}
变异:
export const UPDATE_USER_MUTATION = gql`
mutation UpdateUser($id: String, $input: CreateUserInput) {
UpdateUser(id: $id, input: $input) {
id
name
email
}
}
`;
使用变异:
UpdateField({
variables: {
id: data.fieldID,
input: {
[data.fieldName]: value,
},
},
});
谢谢!
【问题讨论】:
-
代码?更改更新以遵循 api 顺序
-
我将编辑我的帖子以包含突变的代码。我考虑过更改更新,但我不知道如何使其遵循 api 顺序。 Dziekuje!
-
添加代码,希望有意义!
标签: reactjs graphql apollo apollo-client