当我将任务添加到我的待办事项列表时,我试图得到一个乐观的回应:
来自query.ts的ADD_TASK和GET_TASK
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,
completed: false,
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 一起使用。
(这不包括乐观版)
有什么建议么?
Ĵ