问题标签 [react-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 回答
867 浏览

javascript - ReactQueryCacheProvider 与 ReactQueryConfigProvider

react-query 中的ReactQueryCacheProviderReactQueryConfigProvider有什么区别?我认为 CacheProvider 是必须的,因为它是提供程序,以便为应用程序使用 react-query 的上下文。ConfigProvider 似乎是为useQuery提供默认配置的一个选项,问题是配置可以传递给 CacheProvider。

有人可以解释为什么除了CacheProvider之外还要使用ConfigProvider,什么时候应该使用?

0 投票
1 回答
90 浏览

reactjs - React - 如何将本地数据添加到来自 REST api 的数据?

我的 react js 页面正在从 REST 服务获取数据,并react-query用于获取和存储数据。数据是对象列表。

我想为这个列表中的每个对象添加一个或两个我自己的额外变量,这些变量只会在反应端,而不是回到 REST 服务器端。

列表中的每个对象都将获得一个额外的布尔变量expanded,它将指示该对象是否应该在页面上展开。

您如何将这样的变量添加到服务器的列表中?您会修改列表本身并使用immutability-helper吗?或者您会创建一个单独的布尔标志列表和指向另一个列表的指针吗?

0 投票
1 回答
1211 浏览

javascript - React Query v3 useInfiniteQuery 返回 isLoading,isFetching 始终为 true,isFetchingNextPage 始终为 false

我已经使用 react-query v3 中的 useInfiniteQuery 实现了无限滚动。但是isLoadingisFetching在第一页查询后始终为真。而且isFetchingNextPage总是假的。初始加载第一页后,使用fetchNextPage()发出下一页请求

这是我的useContents钩子。

这是fetchContents

我花了几个小时,但找不到原因。

0 投票
1 回答
3077 浏览

reactjs - 无法使用 React-Query + Graphql-Request 在 useQuery 中传递参数

我有点卡住了。我正在使用带有react-query的graphql-request ,非常严格地遵循示例代码。我用自己的后端替换了它,当我不使用变量但对值进行硬编码时它可以工作。它也适用于我的 GraphiQL 测试环境。

所以这样做有效:

下面是完全相同的代码,但现在之前硬编码的 post-id ("123123123123") 被一个变量( ${postId}) 替换。完全如示例代码中所述

错误响应是:

commons.js:46154 错误:语法错误:预期:,找到): {"response":{"errors":[{"message":"语法错误:预期:, 找到)","locations":[{" line":3,"column":46}]}],"status":400},"request":{"query":"\n query {\n post(id: 5fda109506038d9d18fa27e2) {\n
id\n GraphQLClient 的标题\n 内容\n }\n
}\n "}}。(commons.js:13039) 在步骤 (commons.js:12930) 在 Object.next (commons.js:12911) 在完成 (commons.js:12902)

我想这是我弄错了一些语法?还是与现在缺少引号的事实有关?虽然示例代码也没有做任何不同的事情......真的不确定了,但实际上是一行打破了这一切,我无法弄清楚。

0 投票
1 回答
176 浏览

reactjs - React-Query 知道数据何时发生变化?

我开始使用 react-query 来查询我的后端。现在,每次我更新后端数据(使用一些管理面板)时,GUI(反应)都会立即向我显示新数据。react前端如何知道后端数据是否发生了变化?

0 投票
2 回答
3745 浏览

javascript - 如何在handleSubmit中从react-query实现useMutation

我尝试重写此提交函数以使用反应查询 useMutation,但出现错误。有人知道如何将其更改为使用 useMutation 编写。非常感谢您对这个问题的每一个提示和每一个答案。

0 投票
1 回答
89 浏览

javascript - 项目删除时自动更新组件

问题

我有删除组件的代码。它可以工作,但是当我单击删除按钮时,我需要重新加载浏览器才能看到它已被删除。

有没有办法在没有这个元素的情况下立即显示页面?我尝试了一些东西,但对我来说没有任何效果。重新渲染是唯一的灵魂???也许我应该使用像 redux 这样的状态管理。

和主要组件 albums.js

0 投票
1 回答
763 浏览

reactjs - React-query:如何更新缓存?

我有一个非常基本的应用程序,它可以获取用户并允许更改他的名字。我使用 React 查询获取用户,因此我可以从缓存功能中受益。有用。

但是,当我想更新用户时,我使用带有 axios 的经典发布请求。一旦用户在数据库中更新,我需要直接在 updateUser() 函数中更新缓存。我在网上看到过使用 queryCache.setCache 的教程,但在这里不起作用。如何解决这个问题?或者也许有更好的方法来处理此类查询?

此外,我注意到大量渲染......(请参阅应用程序文件中的“用户渲染”console.log)。

为方便起见,我在带有 pokeapi 的代码盒上制作了一个小脚本:

https://codesandbox.io/s/api-service-syxl8?file=/src/App.js:295-306

任何帮助将不胜感激!

0 投票
2 回答
1083 浏览

next.js - React-Query useQuery 发送无限获取请求

当我使用下面的 useQuery 时,以 react-query 文档中使用的方式,它会发送无限数量的获取请求。文档还说 fetch 不会自动抛出错误。所以,我在下面尝试了相同的代码,但 getAlbums 使用了 try-catch 块。我还尝试在 useQuery 挂钩中的对象中配置 staleTime,但它没有用,我真的不知道什么是陈旧时间。哈哈。请帮帮我。试图在星期一之前完成这个项目

在我的控制台中发现了这个错误:

0 投票
1 回答
3772 浏览

reactjs - 为什么我的 react-query 查询在卸载/装载操作后重新获取?

设置

我有以下react-query钩子:

然后,我有一个App组件作为一个孩子住在里面QueryClientProvider

Login组件检查用户是否已经登录并将其重定向回/

Dashboard组件执行相反的操作:

问题

当发出的请求services.user.verify()失败时,会无限期地react-query重试查询。user尽管react-query' 的默认重试次数是 3,但还是会这样做。

无限重试

问题似乎来自我useUser()从多个正在安装/卸载的组件中调用的事实。Dashboard当我从and中删除重定向逻辑时Loginreact-query重试 3 次,然后按预期将我带到登录屏幕。

一次调用 useUser

有趣的事实是user查询被标记为过时。如果我将services.user.verify()实现更改为在用户未通过身份验证时返回null而不是抛出错误,则查询将被标记为新鲜,我根本没有这个问题。

问题

  • 即使在重试后失败,是否react-query 总是认为查询过时?
  • 调用查询的新组件是否总是导致重试?
  • 有没有办法防止这种情况发生?