假设我们要实现useRefresh()
的钩子,就像react-admin
中的这个钩子一样。它应该使所有查询缓存状态无效,并为订阅者自动重新获取。类似于react-query
中的invalidateQueries()
。有办法做到这一点与RTK查询?我该怎么做呢?我知道我可以通过dispatch(someApi.util.invalidateTags([...someApiTags]))
为每个服务api做到这一点。然后我需要为每个api运行这个导入所有标签。我想知道是否有一种方法可以在全局范围内做到这一点。
引用:https://github.com/marmelab/react-admin/blob/v4.1.1/packages/ra-core/src/dataProvider/useRefresh.ts
-
https://redux-toolkit.js.org/rtk-query/api/created-api/api-slice-utils invalidatetags
https://react-query.tanstack.com/guides/query-invalidation
根据文档,您的应用程序应该几乎肯定只有一个或两个api,但您的公式"每个单独的服务api";告诉我你不知何故走上了"很多错误"的方向。这几乎肯定不是RTK Query应该使用的方式。
所以我的建议是将你的api合并成一个——你可以使用文档化的代码分割方法将端点保存在单独的文件中。
只有一个api,你只需要调度resetApiState一次。