我正在使用RTK查询来获取一些数据。我需要访问应用程序中各个组件的加载状态,但我不确定如何做到这一点
我觉得这可能只是我误解了如何在更大的应用程序中正确使用RTK查询。大多数示例都是单个组件,我不太明白如何从各个组件访问单个查询的各种状态。
例如,我需要在应用程序的主要部分显示一个加载器,其中数据是从查询中生成的。然后,我需要在侧边栏的一个很小的部分显示一个完全不同的加载器,它有一些通过相同的API查询生成的内容详细信息。
如何使用RTK查询
是否存在使用共享此查询状态/状态的多个组件的示例
我是否完全错过了对如何在整个应用程序中使用状态的基本理解?(我觉得这里就是这样哈哈)
如果您在另一个组件中用相同的参数调用相同的useQuery
钩子,这两个钩子将共享缓存条目并返回完全相同的数据,这不会触发对服务器的另一个请求。
所以:只要useQuery
在你需要的地方:)
您还可以为该";加载";如果你不想在每个组件中使用查询,比如:
const selectIsResourceLoading = (state: RootState) => apiSlice.endpoints.getResource.select()(state).isLoading;
然后,在组件中重用它:
const isResourceLoading = useTypedSelector(selectIsResourceLoading);