nextjs :window is undefined

2022-09-28  本文已影响0人  精神病患者link常

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>
  )
}
上一篇 下一篇

猜你喜欢

热点阅读