You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Next.js 13中禁用SSR解决useMediaQuery水合错误方案咨询

修复Next.js 13中react-responsive的水合错误
  • 替换原有导入代码,改用Next.js的dynamic函数动态导入react-responsive并禁用SSR:

    import dynamic from 'next/dynamic';
    
    const { useMediaQuery } = dynamic(() => import('react-responsive'), {
      ssr: false,
    });
    
  • 原因:useMediaQuery在SSR阶段会访问浏览器专属的API(比如window),导致服务端渲染的内容和客户端首次渲染内容不一致,触发水合错误。禁用SSR后,该钩子仅在客户端加载执行,从根源避免了内容不匹配问题。

  • 后续使用useMediaQuery的方式和之前完全一致,比如:

    const isMobile = useMediaQuery({ maxWidth: 768 });
    const isTablet = useMediaQuery({ minWidth: 769, maxWidth: 1024 });
    

内容的提问来源于stack exchange,提问作者SpicyyRiice

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 02:24:50