0

我在从缓存中访问数据时遇到问题。我有我的仪表板组件。在这里获取数据是可以的,我可以访问它。

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 提供程序中。

4

1 回答 1

0

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

const { 
        data, 
        error, 
        mutate 
      } = useSWR(['/api/user', code])
于 2020-10-27T10:19:10.787 回答