nextJS SWR如何/是否重新呈现页面?

yptwkmov  于 2023-01-17  发布在  其他
关注(0)|答案(1)|浏览(153)

大家好,大家有一个关于客户端获取的nextJS和swr的问题。
这是取自SWR官方文档的代码片段:

function Profile () {
  const { data, error, isLoading } = useSWR('/api/user/123', fetcher)

  if (error) return <div>failed to load</div>
  if (isLoading) return <div>loading...</div>

  // render data
  return <div>hello {data.name}!</div>
}

我的理解是isLoading在组件呈现时是真的。并且没有状态设置器或钩子来触发页面/组件的重新呈现,所以页面总是显示正在加载...
有人能解释一下这是怎么回事吗?
当API调用完成时,我应该如何触发页面函数的重新呈现?

s4n0splo

s4n0splo1#

通过将if (isLoading) return <div>loading...</div>更改为if (!data) return <div>loading...</div>修复了此问题。如果出现错误,则会导致其自身出现问题,但页面不会卡住。

相关问题