在 RTK 查询中访问缓存数据(新)

Accessing cached data in RTK Query(new)

假设我们有 3 个组件。 首先是作为父级的索引。 第二个是过滤器组件,第三个是 table 组件。 我使用突变来过滤一些数据并将它们显示在 table 中。 在过滤器组件中我这样做了:

  const [filterSomeData] = useFilterSomeDataMutation();
  const data = filterSomeData(myFilter);

现在我需要访问 table 组件中的 data。 Redux 工具包查询每个请求缓存结果,我如何访问它?

通常:如果您从服务器接收数据而不触发服务器上的更改,您应该使用查询,而不是突变。是的,您可以使用查询执行 POST 请求,语法与突变 100% 相同。

那么您应该在所有需要该数据的组件中使用 useQuery 挂钩,参数与您最初传入的参数相同。这意味着如果你有类似过滤器的东西,你应该通过 props 传递那个过滤器(通过将过滤器状态提升到一个共同的父级)或者将该过滤器保存在 Redux 切片中并在调用你的查询钩子之前从 Redux 获取它.

由于您在多个组件中使用相同参数调用 useQuery 挂钩,因此它不会发出多个请求,而是重复使用第一个请求的响应。