如何将 RTK 查询放入存储/切片?

Posted

技术标签:

【中文标题】如何将 RTK 查询放入存储/切片?【英文标题】:How to put RTK query into store/slice? 【发布时间】:2021-10-29 20:34:28 【问题描述】:

我刚开始使用 RTK 查询,但遇到问题

我的应用程序在一个大 JSON 中包含所有设置,因此我创建了一个 RTK 查询来获取设置。在教程中,示例是关于在组件中使用useQuery钩子并立即显示结果,但是由于设置太大以至于它有多个页面/组件来显示并允许用户更改设置

因为设置需要改变,所以我觉得把state放到store里面比较好,我的问题是怎么把API结果放到store里面?

我可以看到一些方法

    在组件中使用useQuery,当它产生结果时,然后进行调度以将数据放入存储中

    put useQuery from API 在所有组件中使用它并使用它来获取缓存数据,然后不需要将它放在存储中并使用组件状态来设置更改(我不确定这种方法因为有很多设置 - 甚至在不同的页面中划分,使用组件状态来管理它似乎并不正确)

我是 RTK 和 RTK 查询的新手,只是想知道最好/好的方法是什么?

【问题讨论】:

【参考方案1】:

使用 RTK Query 隐含意味着“将您的数据放入存储中”。它会创建一个存储切片,为您管理所有数据。 您可以在需要该数据的任何地方使用useQuery,然后将其从商店中取出或在必要时请求新的。

大多数情况下,您不应该将这些数据复制到其他地方,因为您将不得不执行手动清理等操作。

我还可以推荐阅读刚刚添加到官方 Redux 教程中的 RTK-Q 教程章节。他们非常深入。

https://redux.js.org/tutorials/essentials/part-7-rtk-query-basics

【讨论】:

感谢教程链接,我看的是 RTK Query 文档,没有看 Redux 文档,所以我应该在需要的地方使用 useQuery 并使用 useState 钩子提供编辑? 我不是 100% 确定您所说的“提供编辑”是什么意思,但如果这是关于组件本地输入字段,是的,这些通常会保持在本地状态。 是的,这就是我的意思,提供设置和使用本地状态似乎是要走的路。谢谢!

以上是关于如何将 RTK 查询放入存储/切片?的主要内容,如果未能解决你的问题,请参考以下文章

RTK查询拦截器循环依赖

切片好的HTML放入DW中怎样有图片的淡入淡出效果?

Spark:数据无法放入内存,我想避免将其写入磁盘,我可以对数据切片执行迭代以仅使用内存吗?

求问ps如何导出单个切片及PS导出所有的切片图像

TypeError:列表索引必须是整数或切片,而不是 str

存储切片的接口上的范围