首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >RTK查询重置

RTK查询重置
EN

Stack Overflow用户
提问于 2021-11-04 07:50:41
回答 2查看 2.2K关注 0票数 1

我有一个MUI对话框组件,它在保存时触发一个useLazyQuery操作来获取数据。

然后在成功的情况下分派另一个动作

我的问题是,在成功之后,我想在对话框组件中重置useLazyQuery钩子的状态,因为在成功/失败之后,状态在组件中被“卡住”了。

我很困惑我该怎么处理这个..。

卸载和挂载对话框组件可以工作,但它会删除fadeout动画并取消订阅查询端点。

这里有我错过的最佳实践吗?

https://redux-toolkit.js.org/rtk-query/api/created-api/hooks

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-11-04 08:24:44

嗯,与lazyQuery不同,我可能只会在setState中使用普通的查询钩子。这样你就可以skip了。

代码语言:javascript
复制
const [arg, setArg] = useState(null)
const result = useMyQuery(arg, { skip: arg == null })

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

票数 1
EN

Stack Overflow用户

发布于 2021-11-04 12:31:39

因此,我最终使用了没有钩子的RTKQuery。我创建了一个自定义钩子,在initiateselect中使用了useSelectordispatch,当someIdtrue时,我可以重新设置someId

代码语言:javascript
复制
dispatch(api.endpoints.getData.initiate(someId));
const {data, isError, isLoading} = useSelector(state => api.endpoints.getData.select(someId)(state))
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69835845

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档