0

当我将任务添加到我的待办事项列表时,我试图得到一个乐观的回应:

来自query.ts的ADD_TASKGET_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 一起使用。

(这不包括乐观版)

有什么建议么?

Ĵ

4

0 回答 0