微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用 Apollo GraphQl 列出乐观订阅更新

如何解决使用 Apollo GraphQl 列出乐观订阅更新

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

ADD_TASKGET_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 举报,一经查实,本站将立刻删除。