如何解决使用 Apollo GraphQl 列出乐观订阅更新
当我将任务添加到待办事项列表时,我试图获得乐观的回应:
ADD_TASK 和 GET_TASK 来自 query.ts
export const GET_TASKS = gql`
subscription {
queryTask {
id
title
completed
user {
username
}
}
}
`;
export const ADD_TASK = gql`
mutation addTask($task: AddTaskInput!) {
addTask(input: [$task]) {
task {
id
title
completed
}
}
}
`;
addTask() 函数
const newId = Math.round(Math.random() * -1000000);
await addTask({
variables: {
task: {
title: text,completed: false,user: { username: user?.email },},optimisticResponse: {
__typename: "Mutation",addTask: {
__typename: "AddTaskPayload",task: {
__typename: "Task",id: newId,title: text,user: {
__typename: "User",username: user?.email,update(cache,{ data: addTask }: any) {
const queryTask: any = cache.readQuery({
query: GET_TASKS,});
cache.writeQuery({
query: GET_TASKS,data: {
queryTask: [...queryTask.queryTask,addTask.addTask.task],});
},});
更新
所以,我让它正常工作,现在我只需要让它工作:
1.) 订阅
2.) ID 问题......它在这里生成一个随机 ID 而不是知道它应该是什么(任何建议)?
我将我的存储库与 Dgraph here 一起使用。
(这里不包括乐观版)
有什么建议吗?
J
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。