问题标签 [swr]

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 投票
2 回答
5339 浏览

javascript - 将 SWR 与 Redux 一起使用是正确的还是好的做法?

我正在使用SWR

在我的代码中,我使用两者的连接点如下

在上面的这段摘录中,我使用我使用 SWR(与 axios 集成)返回的数据在 redux 中设置了我的组件状态。这样,在需要使用相同数据的任何其他组件中,我只使用 redux 的useSelect导入它。

这边走

我发现它比通过在每个想要使用该数据的组件上调用 useFetch 来使用 SWR 更实用。

我的问题是:使用这种方式是正确的方式,还是会影响性能或其他什么?

提前致谢

0 投票
1 回答
453 浏览

javascript - SWR 未从 fetcher 填充数据,卡在加载中

我使用 graphql 和 swr 来获取数据

这是我的提取器:

FetcherHelper.js

这就是我使用 SWR 的方式

响应日志:

我在这样的组件中使用 SWR:

它卡在loading...

但它卡在加载中,dataForForm从未填充过。

为什么会发生这种情况以及如何解决这个问题?

0 投票
3 回答
1642 浏览

reactjs - 带有graphql-request的SWR如何在swr中添加变量?

我想将变量添加到使用 graphql 请求获取的 swr 中。这是我的代码

但我不知道如何添加variables到 swr fetcher 中,因为我知道useSWR(String, fetcher)string 用于查询,而 fetcher 用于 fetch 函数,我可以将变量放在哪里?

0 投票
1 回答
634 浏览

reactjs - 为什么在 SWR 中的 mutate 上未定义我的缓存状态?

我有一个组件可以获取带有帖子的 subreddit 的数据,并且每个帖子都有投票:

这工作得很好,它可以在屏幕上呈现所有内容。但是在我的subredditPost组件上(我为每个帖子渲染一个subredditPost),当我单击 upvote 按钮时,我有这个 onClick 函数:

它始终在上面代码的 console.log 中未定义。所以我收到一个错误,页面上不再呈现任何内容。我究竟做错了什么?如果我使用不同的密钥,我读到它无法获取缓存,但我使用的是相同的密钥。我将subUrl我的主要组件(我在其中获取 subreddit)传递给 post 组件(我在其中单击 upvote 按钮)。所以它是完全一样的。

为什么我会不确定?

0 投票
1 回答
55 浏览

reactjs - 三元运算符没有按预期工作

我有一个地图组件,我需要在其中传递来自自定义 useSwr 挂钩的默认坐标。获取数据后,我将它们传递给状态并在值或未定义时呈现它。显然我做错了什么并且它无法正常工作,因为即使值未定义也会调用 Map 组件,这导致我收到此错误:

Failed prop type: Invalid prop `center` supplied to `o`. 

这就是我处理状态的方式:

渲染时:

0 投票
1 回答
1334 浏览

loops - next.js 和 useSWR 出错“重新渲染太多”,我不知道为什么?

我是 React 的新手,对 Next.js 更是陌生

我有一个输入,用户在所有可用城市的列表中按名称搜索城市。

我读过 useSWR 可能会很有趣(在此之前,我在 useEffect 中使用 axios 发出请求)。

一旦我得到了城市数组,我会做一张地图来返回所有匹配的请求(然后我用它来做一个自动完成)。

但是我收到这样的错误:
“错误:重新渲染太多。React 限制了渲染的数量以防止无限循环。”
如果我只是获取数据,它可以工作,但如果我在数组上做地图,我会得到一个无限循环,我不知道为什么。

我的代码:

0 投票
1 回答
379 浏览

javascript - Next js、Knex 和 SWR 的奇怪查询错误

使用NextAPI 路由和Knex+ MySQL,并使用ReactandSWR进行获取,我遇到了一个奇怪的错误。如果请求失败,我的查询会开始附加, *select语句中,从而导致 SQL 语法错误。例如,查询应该使用select *,但输出为select *, *and thenselect *, *, *等等。有谁知道为什么会发生这种情况?

SWR 获取:

knex查询:

0 投票
0 回答
409 浏览

javascript - 使用 SWR 使用多个获取请求更新未包含在 act() 中

我有一个测试,如果/endpoint1失败,应该显示一条错误消息。测试通过了,但是我从 React 测试库中得到以下错误:

为了清楚起见,这里是狙击手。您可以看到我正在使用SWR发送请求。我正在使用Mock Service Worker 模拟请求。

存在错误是因为/endpoint2在 之后解决/endpoint1,导致组件重新呈现。我相信一旦第一个错误取消第二个请求会起作用。useSwr()我对使用的函数做了一个包装器AbortController()并暴露了一个cancel()函数,但是这个代码段会出现同样的错误:

出于某种原因,即使取消了一个端点,它仍然会解析并导致重新渲染。我在这里错过了什么吗?谢谢

编辑:

这是失败的测试:

还有我的自定义提取器功能:

0 投票
1 回答
1002 浏览

reactjs - 使用 SWR 单击时向 API 路由发出请求时出现过多的重新渲染错误

id当我单击组件内的按钮时,我将通过函数发送回页面const readUrl。现在我正在尝试将客户端发送id到一个/api/dat/[id].js路由,在该路由中它基本上在 mongodb 中搜索该 id 并res.send返回到页面 JSON 结果。

因此,通过 SWR,我正在处理 API 路由客户端,我使用两个useState来处理来自按钮单击的 id 和来自 API 的结果,以将其传递给 react DOM。

问题是我得到:

错误:重新渲染过多。React 限制了渲染的数量以防止无限循环。

这是我的api/dat/[id].js

这是我页面中的代码:

useSWR正如上面设置的那样,只有当函数readUrl返回时才会触发true,正如 SWR 文档所说,所以我认为只有在单击按钮时它才应该获取 API 路由,至少这是想法。

0 投票
1 回答
5141 浏览

reactjs - 如何使用 swr 发送标头

我正在尝试使用SWR和 Axios 发送标头,但没有发送标头。

使用 SWR 发送标头的正确方法是什么?