问题标签 [rtk-query]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
617 浏览

redux - 是否可以通过 RTK Query/Redux Toolkit 使用外部 SDK 或数据获取库(如 Kitsu)?

根据RTK 查询文档,我可以创建如下查询:

以上按预期工作。但是,如果想使用Kitsu 之类的外部库来获取和转换数据,则会出现以下错误:

RTK查询错误

这是我在使用 Kitsu 时更新的代码:

这是api函数的代码:

是否可以使用 Kitsu 或任何 3rd 方包提供的功能覆盖 RTK Query/Redux Toolkit的baseQuery功能?

0 投票
1 回答
1719 浏览

graphql-codegen - 使用带有 Graphql 的 RTK 查询

到目前为止,我知道我需要建立自己的baseQuery. 我可以像这里https://rtk-query-docs.netlify.app/examples/react-with-graphql中的示例一样编写graphql查询和突变,如果我添加类型query.builder这样的查询和突变,我是否可以获得完整的类型安全性builder.query<Device, void>或者我必须使用这样的东西https://www.graphql-code-generator.com/docs/plugins/typescript-graphql-request#simple-request-middleware。在后一种情况下,baseQuery如果我为 graphql-request 库使用生成的钩子,我应该怎么看。

这是来自2的钩子示例:

我在想类似的事情:

代码并没有真正的意义,但我希望你能明白我的意思。谢谢 :)

0 投票
1 回答
3509 浏览

reactjs - RTK Query 使用 getState() 从另一个切片获取状态

我昨天刚开始使用 redux,在阅读了不同的库之后,我决定使用 RTK 的切片路由。

对于我的异步,我决定使用 RTK 查询,而不是使用 createAsyncThunk,我对从另一个切片访问状态的正确方法有疑问。

slice1 包含一些用户数据,例如:

在我的 slice2 中,我有一个函数想要执行getSomethingByUserId(id)和我当前的实现之类的操作:

当我在某处读到 markerikson 提到导入商店而不是在 thunk 中使用 getState 不是一个好习惯时,我环顾四周并在文档中看到在 onStart 中存在用于查询的 getState 与 thunk 不同,您可以访问它从它的第二个参数。

有人对此有 onStart 实现吗?或者进口商店是否可以接受?

0 投票
2 回答
3161 浏览

reactjs - 有没有办法获取存储在 api slice [RTK Query] 中的所有响应?

这是根据页面返回数据的钩子

这是api

有什么方法可以提取所有查询的状态?我想实现基于滚动的分页(无限滚动)我们需要更新中间件吗?或者有什么方法可以访问状态并将其作为上面的函数公开,我浏览了文档但找不到解决方案

我可以使用本地状态并将它们连接起来,但想知道是否可以使用 RTK

谢谢

0 投票
1 回答
1245 浏览

redux - 当我将 RTK Query 与 redux-persist 一起使用时会发生什么?

当我将 Redux Toolkit Query 与 redux-persist 一起使用时会发生什么?

它会使用持久化状态还是重新获取状态?

0 投票
1 回答
825 浏览

reactjs - Redux ToolKit Query - 在同一个组件中进行多个相互依赖的查询

我正在尝试在 NextJS 应用程序中使用 RTK Query 从 API 获取多个实体。我有AppAppVersion模型。当组件加载时,我需要获取App然后获取适当AppVersion的 s。AnApp具有currentVersionId链接到 和 的属性AppVersion

代码失败是因为组件最初是在没有路由器的情况下呈现的,它无法获取应用程序并且没有app.currentversionId.

我有两个从 RESTful API 获取适当对象的切片。

在这里使用什么合适的模式?谢谢!

0 投票
2 回答
2510 浏览

redux - 使用 MSW 和 Jest 时如何在请求之间的测试中清除 RTK 查询缓存?

我正在使用带有 MSW 的 Redux Toolkit 和 RTK Query 进行模拟,但在尝试返回测试错误时,我似乎得到了相同的数据。我怀疑这是 RTK 查询缓存行为的问题,并尝试使用工具包 createApi 方法的这些选项禁用它,但它们似乎没有解决问题:

在 MSW 文档中,它提供了使用其他库时如何解决此问题的示例:https ://mswjs.io/docs/faq#why-do-i-get-stale-responses-when-using-react-queryswretc

使用 Redux Toolkit 和 RTK Query 时如何实现相同的效果?

0 投票
1 回答
2939 浏览

javascript - 使用 React Hooks 使用 RTK Query 进行链式查询/变异调用

在下面的示例中,我尝试使用 React 和 Redux Toolkit 创建一个简单的登录/身份验证组件。

这工作正常,问题是:

我想利用查询结果对象isLoading上的属性,getUser以便在<SpinnerIcon />完成两个请求之前,组件都是可见的。

实际上,该spinnerIcon组件仅在loginAPI 调用期间显示,因为我没有使用 React Hooks 来调用getUser查询,因此我没有该组件的其余部分可用的isLoading属性。getUser

但是,如果我想使用 React Hooks 进行调用,我需要login事先获得突变的结果。

const [getUser, { isLoading: isUserLoading }] = useGetUserQuery(resultFromLoginMutation);

我不知道该怎么做。一个接一个,这样我就可以利用这两个isLoading属性。

0 投票
1 回答
1369 浏览

redux-toolkit - 我应该使用每个基本 URL 或资源的 RTK 查询吗?

我正在一个大型项目中工作,其中包含许多基本 URL资源,我们可以理解为许多不同的集成服务。

按照资源行(隔离)在我的应用程序上插入 RTK,我每个资源都有一个 createApi()。

我遵循这条路径是因为每个资源都有所有CRUD方法和一些自定义方法,想象我们将有 10 个方法(调用)来管理每个资源并且,使用单个创建 API,我可以在单个 createApi/reducerPath 上拥有 200 个方法.

示例:(我想这可以解决我的问题)

来自 RTK 文档:

“createApi():RTK Query 功能的核心。它允许您定义一组端点,描述如何从一系列端点检索数据,包括如何获取和转换该数据的配置。在大多数情况下,您应该使用每个应用程序一次,根据经验,“每个基本 URL 一个 API 切片”。

问题是,以这种方式(每个资源)使用 RTK 可以吗?我会有性能问题,还是不是正确的方法?

0 投票
1 回答
8583 浏览

reactjs - Redux Toolkit RTK Query 发送查询参数

如何使用 Redux Toolkit RTK Query 将查询参数传递给 api?

当尝试从组件传递参数时,start似乎只能识别该值。year由组件内的选择元素更新<PostOptions/>。它正在使用useState钩子。值正确更新并被useGetPostsByYearQuery调用,但end参数始终未定义。所以,看来我没有正确定义 api 端点。有什么建议吗?我想要它做的就是在表单中发送一个请求http://xxx/posts?start=start&end=end

我什至尝试硬编码end参数的字符串值,例如useGetPostsByYearQuery(year, '2019'),但它仍然显示为undefined带有 api 回调,所以我错过了一些更基本的东西。