美文网首页
nextjs :window is undefined

nextjs :window is undefined

作者: 精神病患者link常 | 来源:发表于2022-09-28 14:24 被阅读0次

next.js是服务器渲染,运行在node上的,所以在componentDidMount之前不会得到window,在页面渲染到浏览器后,才能找到window

解决办法一:关闭ssr

export default dynamic(
 ()=>import('../views/home'),
 {
   // ssr:false,
   loading:()=><PageLoading/>
 }
)

解决办法二:先渲染LoadingPage,componentDidMount之后重新渲染HomePage

_app.tsx


function MyApp({ Component, pageProps }:AppProps) {
  const [load,setLoad] = useState(false)
  useEffect(()=>{
    console.log('----------',global.window.screen);
    setLoad(true)
  },[])
  return (
      !load ? <PageLoading/> : <Suspense fallback={<PageLoading/>}>
      ...
    </Suspense>
  )
}

相关文章

网友评论

      本文标题:nextjs :window is undefined

      本文链接:https://www.haomeiwen.com/subject/hrscartx.html