RTK 查询重置

RTK Query reset

我有一个 MUI 对话框组件,它在保存时触发 useLazyQuery 操作以获取数据。
然后在成功调度另一个动作
我的问题是,成功后,我想在对话框组件中重置 useLazyQuery 挂钩的状态,因为在 success/fail 之后,状态在组件中像这样“卡住”。
我很困惑我应该如何处理这个...
卸载并安装对话框组件有效,但它会删除淡出动画并取消订阅查询端点。
这里有没有我遗漏的最佳实践?
https://redux-toolkit.js.org/rtk-query/api/created-api/hooks

嗯,我可能只是使用带有 setState 的普通查询挂钩,而不是 lazyQuery。这样你就可以skip了。

const [arg, setArg] = useState(null)
const result = useMyQuery(arg, { skip: arg == null })

然后setArg(null)“重置”这个东西。

所以我最终使用了没有钩子的 RTKQuery
创建了一个自定义挂钩并在内部使用了 initiate 和 select
使用 useSelector 和 dispatch,
比我可以在 isSuccess 为真时重置 someId

dispatch(api.endpoints.getData.initiate(someId));
const {data, isError, isLoading} = useSelector(state => api.endpoints.getData.select(someId)(state))