Next.js SWR从缓存访问数据

时间:2020-09-13 16:24:42

标签: reactjs next swr

我从缓存访问数据时遇到问题。我有我的dahboard组件。可以在这里提取数据,我可以访问它。

const Dashboard = ({ code }) => {
  const { 
    data, 
    error, 
    mutate 
  } = useSWR(['/api/user', code], (url, code) => api.auth.getAuthData({ code }))
  return (
    <MainLayout>
      <div>
        dasdasdasasd
      </div>
    </MainLayout>
  )
}

当我尝试访问其他组件中的数据时,问题开始了。

const Navbar = () => {
  const { 
    data, 
    error, 
    mutate 
  } = useSWR(['/api/user'])
  console.log(data)
  return (
    <Styled.Navbar>
      dasdasdas
    </Styled.Navbar>
  )
}

导航栏组件中的数据未定义。有什么原因不起作用?整个应用都包装在SWR提供程序中。

1 个答案:

答案 0 :(得分:0)

在获取数据时,您将“代码”值用作键的一部分。要获取缓存的结果,您需要传递相同的键 ['/ api / user',代码]

const { 
        data, 
        error, 
        mutate 
      } = useSWR(['/api/user', code])