问题标签 [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.
javascript - ReactQueryCacheProvider 与 ReactQueryConfigProvider
react-query 中的ReactQueryCacheProvider和ReactQueryConfigProvider有什么区别?我认为 CacheProvider 是必须的,因为它是提供程序,以便为应用程序使用 react-query 的上下文。ConfigProvider 似乎是为useQuery提供默认配置的一个选项,问题是配置可以传递给 CacheProvider。
有人可以解释为什么除了CacheProvider之外还要使用ConfigProvider,什么时候应该使用?
reactjs - React - 如何将本地数据添加到来自 REST api 的数据?
我的 react js 页面正在从 REST 服务获取数据,并react-query
用于获取和存储数据。数据是对象列表。
我想为这个列表中的每个对象添加一个或两个我自己的额外变量,这些变量只会在反应端,而不是回到 REST 服务器端。
列表中的每个对象都将获得一个额外的布尔变量expanded
,它将指示该对象是否应该在页面上展开。
您如何将这样的变量添加到服务器的列表中?您会修改列表本身并使用immutability-helper
吗?或者您会创建一个单独的布尔标志列表和指向另一个列表的指针吗?
javascript - React Query v3 useInfiniteQuery 返回 isLoading,isFetching 始终为 true,isFetchingNextPage 始终为 false
我已经使用 react-query v3 中的 useInfiniteQuery 实现了无限滚动。但是isLoading,isFetching在第一页查询后始终为真。而且isFetchingNextPage总是假的。初始加载第一页后,使用fetchNextPage()发出下一页请求
这是我的useContents钩子。
这是fetchContents
我花了几个小时,但找不到原因。
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)
我想这是我弄错了一些语法?还是与现在缺少引号的事实有关?虽然示例代码也没有做任何不同的事情......真的不确定了,但实际上是一行打破了这一切,我无法弄清楚。
reactjs - React-Query 知道数据何时发生变化?
我开始使用 react-query 来查询我的后端。现在,每次我更新后端数据(使用一些管理面板)时,GUI(反应)都会立即向我显示新数据。react前端如何知道后端数据是否发生了变化?
javascript - 如何在handleSubmit中从react-query实现useMutation
我尝试重写此提交函数以使用反应查询 useMutation,但出现错误。有人知道如何将其更改为使用 useMutation 编写。非常感谢您对这个问题的每一个提示和每一个答案。
javascript - 项目删除时自动更新组件
问题
我有删除组件的代码。它可以工作,但是当我单击删除按钮时,我需要重新加载浏览器才能看到它已被删除。
有没有办法在没有这个元素的情况下立即显示页面?我尝试了一些东西,但对我来说没有任何效果。重新渲染是唯一的灵魂???也许我应该使用像 redux 这样的状态管理。
和主要组件 albums.js
reactjs - React-query:如何更新缓存?
我有一个非常基本的应用程序,它可以获取用户并允许更改他的名字。我使用 React 查询获取用户,因此我可以从缓存功能中受益。有用。
但是,当我想更新用户时,我使用带有 axios 的经典发布请求。一旦用户在数据库中更新,我需要直接在 updateUser() 函数中更新缓存。我在网上看到过使用 queryCache.setCache 的教程,但在这里不起作用。如何解决这个问题?或者也许有更好的方法来处理此类查询?
此外,我注意到大量渲染......(请参阅应用程序文件中的“用户渲染”console.log)。
为方便起见,我在带有 pokeapi 的代码盒上制作了一个小脚本:
https://codesandbox.io/s/api-service-syxl8?file=/src/App.js:295-306
任何帮助将不胜感激!
next.js - React-Query useQuery 发送无限获取请求
当我使用下面的 useQuery 时,以 react-query 文档中使用的方式,它会发送无限数量的获取请求。文档还说 fetch 不会自动抛出错误。所以,我在下面尝试了相同的代码,但 getAlbums 使用了 try-catch 块。我还尝试在 useQuery 挂钩中的对象中配置 staleTime,但它没有用,我真的不知道什么是陈旧时间。哈哈。请帮帮我。试图在星期一之前完成这个项目
在我的控制台中发现了这个错误:
reactjs - 为什么我的 react-query 查询在卸载/装载操作后重新获取?
设置
我有以下react-query
钩子:
然后,我有一个App
组件作为一个孩子住在里面QueryClientProvider
:
该Login
组件检查用户是否已经登录并将其重定向回/
:
该Dashboard
组件执行相反的操作:
问题
当发出的请求services.user.verify()
失败时,会无限期地react-query
重试查询。user
尽管react-query
' 的默认重试次数是 3,但还是会这样做。
问题似乎来自我useUser()
从多个正在安装/卸载的组件中调用的事实。Dashboard
当我从and中删除重定向逻辑时Login
,react-query
重试 3 次,然后按预期将我带到登录屏幕。
有趣的事实是user
查询被标记为过时。如果我将services.user.verify()
实现更改为在用户未通过身份验证时返回null
而不是抛出错误,则查询将被标记为新鲜,我根本没有这个问题。
问题
- 即使在重试后失败,是否
react-query
总是认为查询过时? - 调用查询的新组件是否总是导致重试?
- 有没有办法防止这种情况发生?