尝试使用 Apollo 查询重新获取数据

Trying to refetch the data using Apollo query

我正在尝试在操作完成后重新获取数据,但我在重新获取时失败,并且页面没有刷新数据。

下面是突变和获取查询的代码:

const {
    data: designHubProjectData,
    loading: designHubProjectDataLoading,
    error: designHubProjectDataError
  } = useQuery(ALL_DESIGNHUB_PROJECTS, {
    fetchPolicy: 'network-only',
    variables: {
      order: [{ projectNumber: 'DESC' }]
    }
  });

  const [insertEmployeeDesignHubProjectBookmarkMutation] = useMutation(
    INSERT_EMPLOYEE_DESIGNHUB_PROJECT_BOOKMARK,
    {
      refetchQueries: [     // here i am calling two queries after insert
        {
          query: EMPLOYEE_DESIGNHUB_PROJECT_BOOKMARK,
          variables: {
            order: [{ projectNumber: 'DESC' }]
          }
        },
        {
          query: ALL_DESIGNHUB_PROJECTS,
          fetchPolicy: 'network-only',
          variables: {
            order: [{ projectNumber: 'DESC' }]
          }
        }
      ]
    }
  );

然后下面是我在 mutation 上面调用的方法

  const handleAddBookmark = record => {
    insertEmployeeDesignHubProjectBookmarkMutation({
      variables: {
        employeeId: loggedInEmployee.id,
        projectNumber: record.projectNumber
      }
    }).then(({ data }) => {
      if (data.insertEmployeeDesignHubProjectBookmark.ok) {
        notification.success({
          message: 'Success',
          description: 'Successfully bookmarked the project.'
        });
      } else {
        const errors = data.insertEmployeeDesignHubProjectBookmark.errors.join(', ');
        notification.error({
          message: 'Error',
          description: `Adding bookmark to the project failed: ${errors}.`
        });
      }
    });
  };

我不确定上面的代码哪里做错了。任何人都可以让我知道如何重新获取使其工作的任何建议或想法,在此先感谢

我已经通过将 refetch 分配给 Oncompleted 方法解决了这个问题,如下所示,

  const {
    data: designHubProjectBookmarkData,
    loading: designHubProjectBookmarkDataLoading,
    error: designHubProjectBookmarkDataError,
    refetch: refetchBookmarkProjects
  } = useQuery(EMPLOYEE_DESIGNHUB_PROJECT_BOOKMARK, {
    fetchPolicy: 'network-only',
    variables: {
      order: { projectNumber: 'DESC' }
    }
  });


const [insertEmployeeDesignHubProjectBookmarkMutation] = useMutation(
    INSERT_EMPLOYEE_DESIGNHUB_PROJECT_BOOKMARK,
    {
      onCompleted: refetchBookmarkProjects
    }
   );

如果以后有人在寻找同样的东西,这就是一个例子。