美文网首页
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