我已经决定尝试将我的大部分API函数转移到SWR,因为它允许我做更多的事情! 问题 然而,我有一个很大的问题,我不知道如何正确地将头传递到SWR中。我看了很多文档,但似乎没有什么效果。我正在使用Twitch API,Next.js和NextAuth来处理令牌,会话等。我已经在下面留下了我的GitHub存储库以及我目前正在尝试使用的代码。 注意: 如果发生错误,我在控制台记录错误返回,当我访问页面时,它显示failed to load /dash there no console log of a error? Github Repo import axios from "axios&
我正在尝试实现swr库来获取数据。我过去常常使用普通的axios和我创建的一些自定义钩子。我遇到的问题是,由于某些原因,swr在设置默认axios标头之前就触发了get请求,因此在发送标识应用程序帐户所需的标头时会丢失。我的猜测是,这与SWR的预取功能有关,但这只是一个胡乱猜测,不知道如何防止这种情况发生。
import axios from "axios";
import React, {useLayoutEffect} from "react";
import useSWR from "swr";
function Child({matc
如何在Next.js中使用自定义钩子Next.js并防止did not match server/client错误而不使用useEffect()?例如,当使用swr时。
useData()将数据存储在客户端(context + localStorage)。我试图用用户提供的一些数据创建一个静态站点。
function useCustomHook() {
const [{ data }, dispatch] = useData()
if (typeof window !== 'undefined') { // Client side
return { data:
我第一次在next.js中使用SWR钩子,我试图得到一些关于某些东西的答案,但是我无法得到它们,即使是在文档中。
Questions:所以,我知道SWR提供了一个包含数据的缓存,并且它会实时更新,但是我有点迷失在两个选项之间--您必须使用钩子。所以,通常情况下,您有dedupeInterval和refreshInterval
refreshInterval = 0: polling interval (disabled by default)
dedupingInterval = 2000: dedupe requests with the same key in this time span
token变量在SWR中没有更新,因为我在重新验证函数中通过useState更新它。
const [token, setToken] = useState('')
console.log(token) // this updates as setToken is called
const fetcher = (url) => {
console.log(token) // this remains empty although it re-renders
return axios.get(
url,
{