RTK 查询支持 `isLoading` 以在缓存失效后自动重新获取
RTK Query sustain `isLoading` for auto-refetching after cache invalidation
很难为这个问题找到好的答案/解决方案。
我有一个 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();
问题描述
在列表组件中,单个行有一个删除 Post 的图标 - 而 isDeleting
我正在显示一个微调器,它也显示得很好 - 但是,当 Post 被删除时RTKQ 的自动重新获取开始从服务器获取现在更新的 Posts - 但是 isDeleting
不再正确。
这留下了一小段时间 window,其中 Post 行没有显示任何微调器,但也没有从 Posts 列表中删除。
一旦所有 Post 的重新获取数据成功返回,删除的 Post 行将从列表中删除。
我如何维持微调动画从删除个体Post到RTKQ自动重新获取完成后的移除?
谢谢
您可以在列表查询中使用 isFetching
而不是 isLoading
,这仅适用于初始请求,不适用于重新获取。
很难为这个问题找到好的答案/解决方案。
我有一个 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();
问题描述
在列表组件中,单个行有一个删除 Post 的图标 - 而 isDeleting
我正在显示一个微调器,它也显示得很好 - 但是,当 Post 被删除时RTKQ 的自动重新获取开始从服务器获取现在更新的 Posts - 但是 isDeleting
不再正确。
这留下了一小段时间 window,其中 Post 行没有显示任何微调器,但也没有从 Posts 列表中删除。
一旦所有 Post 的重新获取数据成功返回,删除的 Post 行将从列表中删除。
我如何维持微调动画从删除个体Post到RTKQ自动重新获取完成后的移除?
谢谢
您可以在列表查询中使用 isFetching
而不是 isLoading
,这仅适用于初始请求,不适用于重新获取。