簡體   English   中英

RTK 查詢重置

[英]RTK Query reset

我有一個 MUI 對話框組件,它在保存時觸發 useLazyQuery 操作以獲取數據。
然后成功調度另一個動作
我的問題是,成功后,我想重置對話框組件中 useLazyQuery 鈎子的狀態,因為在成功/失敗后,狀態在組件中像這樣“卡住”。
我很困惑我應該如何處理這個......
卸載並安裝對話框組件可以工作,但它會刪除淡出動畫並取消訂閱查詢端點。
這里有我缺少的最佳實踐嗎?
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
創建了一個自定義鈎子並在內部使用啟動和選擇
使用 useSelector 和 dispatch,
當 isSuccess 為真時我可以重置 someId

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM