当我使用 ReactQuery useMutation 创建新组时如何更新组数组

how to update group array when i create new group using ReactQuery useMutation

我想创建一个群组并立即更新我的群组列表,但在这里我必须刷新页面并获取新数据

你的代码看起来不错,但你可能想要一个乐观的更新:在请求发生之前在本地更新组,然后在发生错误时可能回滚。 docs here 中对此进行了介绍。在您的情况下,类似于:

useMutation(
  values => createGroup(values),
  {
    onMutate: async value => {
      await queryClient.cancelQueries('groups')
 
      const previousGroups = queryClient.getQueryData('groups')
 
      queryClient.setQueryData('groups', old => [...old, value])
 
      return { previousGroups }
    },
    onError: (err, values, context) => {
      queryClient.setQueryData('groups', context.previousGroups)
    },
    onSettled: () => {
      queryClient.invalidateQueries('groups')
    }
  }
)

如果您的乐观更新被认为是正确的,您也可以省略 onSettled 中的重新获取,或者您可以 return 来自服务器的数据并将其放入 onSuccess 的缓存中。