我有一个MUI对话框组件,它在保存时触发一个useLazyQuery操作来获取数据。
然后在成功的情况下分派另一个动作
我的问题是,在成功之后,我想在对话框组件中重置useLazyQuery钩子的状态,因为在成功/失败之后,状态在组件中被“卡住”了。
我很困惑我该怎么处理这个..。
卸载和挂载对话框组件可以工作,但它会删除fadeout动画并取消订阅查询端点。
这里有我错过的最佳实践吗?
https://redux-toolkit.js.org/rtk-query/api/created-api/hooks
发布于 2021-11-04 08:24:44
嗯,与lazyQuery不同,我可能只会在setState中使用普通的查询钩子。这样你就可以skip了。
const [arg, setArg] = useState(null)
const result = useMyQuery(arg, { skip: arg == null })然后setArg(null)来“重置”这个东西。
发布于 2021-11-04 12:31:39
因此,我最终使用了没有钩子的RTKQuery。我创建了一个自定义钩子,在initiate和select中使用了useSelector和dispatch,当someId是true时,我可以重新设置someId。
dispatch(api.endpoints.getData.initiate(someId));
const {data, isError, isLoading} = useSelector(state => api.endpoints.getData.select(someId)(state))https://stackoverflow.com/questions/69835845
复制相似问题