reactjs - RTK 查询维持 `isLoading` 缓存失效后自动重新获取

标签 reactjs rtk-query

很难为这个问题找到好的答案/解决方案。

我有一个 POSTS 列表组件,允许删除单个 POST 行。

我正在使用普通的 queryMutation 进行删除:

实现

deletePostById: build.mutation<{ success: boolean; id: number }, number>({
  query(id) {
    return {
      url: `post/${id}`,
      method: 'DELETE',
    }
  },
  invalidatesTags: (result, error, id) => [{ type: 'Posts', id }],
})

用法

  const [deletePost, { isLoading: isDeleting, error: deletionError }] = useDeletePostByIdMutation();

问题描述
在列表组件中,单个行有一个删除该帖子的图标 - 而 isDeleting 我正在显示一个微调器,它也显示得很好 - 但是,当帖子被删除时,自动重新获取RTKQ 开始从服务器获取现在更新的帖子 - isDeleting 不再为真。 这留下了一个小的时间窗口,其中 Post 行没有显示任何微调器,但也没有从 Posts 列表中删除。

一旦所有帖子的重新获取数据成功返回,删除的帖子行将从列表中删除。


如何在 RTKQ 的自动重新获取完成后维持微调器动画从删除单个帖子到删除?


谢谢

最佳答案

您可以在列表查询中使用 isFetching 而不是 isLoading,这仅适用于初始请求,不适用于重新获取。

关于reactjs - RTK 查询维持 `isLoading` 缓存失效后自动重新获取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72445934/

相关文章:

javascript - ReactJS:将我自己的 Prop 添加到另一个组件

javascript - reactjs 中的 render 和 return 有什么区别?

javascript - 在 Redux-Form 上,我可以在验证之后、提交之前处理值吗?

reactjs - React Native 中的高阶组件 (HOC) 身份验证

reactjs - eager-slider 不适用于 next.js

react-redux - 代码分割时如何修改prepareHeaders设置的RTK查询的标题?

javascript - 如何在收到 websocket 消息时更新从 RTK 查询返回的 Hook 数据

reactjs - Redux 工具包查询变异乐观更新

reactjs - 如何在组件之外获取RTK查询数据?

reactjs - 如何仅为一组特定的注入(inject)端点动态更改我的 RTK 查询 api 的 baseURL?