有没有一种方法可以自动重新获取并立即使活动订阅者的所有缓存状态失效?

Is there a way to do automated re-fetching invalidating all cache states for active subscribers at once?

假设我们要实现一个 useRefresh() 挂钩,就像 this one from react-admin. It should invalidate all queries cache states and do automated re-fetching for subscribers. Similar to invalidateQueries() from react-query 一样。有没有办法用 RTK 查询来做到这一点?我怎么能解决这个问题?我知道我可以为 api 到 dispatch(someApi.util.invalidateTags([...someApiTags])) 的每项服务做到这一点。但是然后我需要 运行 每个 api 导入他们的所有标签。我想知道是否有办法在全球范围内做到这一点。

参考文献:

  1. https://github.com/marmelab/react-admin/blob/v4.1.1/packages/ra-core/src/dataProvider/useRefresh.ts

  2. https://redux-toolkit.js.org/rtk-query/api/created-api/api-slice-utils#invalidatetags

  3. https://react-query.tanstack.com/guides/query-invalidation

根据文档,您的应用程序几乎肯定应该只有一个或两个 api,但是您对“每个服务 api”的表述告诉我您不知何故去了“很多apis”的方向。这几乎肯定不是 RTK 查询的用途。

所以我的建议是您将 api 合并为一个 - 您可以使用已记录的 code splitting 方法将端点保留在单独的文件中。

只有一个 api,您只需发送 resetApiState 一次。