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

Vercel部署Next.js项目时遇WagmiProviderNotFoundError错误求助

问题:Next.js部署Vercel时Wagmi Provider相关预渲染错误

我开发了一个包含登录注册功能的Next.js项目,添加钱包连接按钮后部署到Vercel时出现以下错误,怀疑是Wagmi Provider配置存在问题,恳请提供解决思路。

WagmiProviderNotFoundError: `useConfig` must be used within `WagmiProvider`.
Docs: https://wagmi.sh/react/api/WagmiProvider.html
Version: wagmi@2.5.13
    at useConfig (file:///vercel/path0/node_modules/wagmi/dist/esm/hooks/useConfig.js:10:15)
    at useAccount (file:///vercel/path0/node_modules/wagmi/dist/esm/hooks/useAccount.js:8:20)
    at useConnectionStatus (file:///vercel/path0/node_modules/@rainbow-me/rainbowkit/dist/index.js:115:27)
    at ConnectButton (file:///vercel/path0/node_modules/@rainbow-me/rainbowkit/dist/index.js:5489:28)
    at Wc (/vercel/path0/node_modules/react-dom/cjs/react-dom-server.browser.production.min.js:68:44)
    at Zc (/vercel/path0/node_modules/react-dom/cjs/react-dom-server.browser.production.min.js:70:253)
    at Z (/vercel/path0/node_modules/react-dom/cjs/react-dom-server.browser.production.min.js:76:89)
    at $c (/vercel/path0/node_modules/react-dom/cjs/react-dom-server.browser.production.min.js:78:98)
    at Zc (/vercel/path0/node_modules/react-dom/cjs/react-dom-server.browser.production.min.js:71:145)
    at Z (/vercel/path0/node_modules/react-dom/cjs/react-dom-server.browser.production.min.js:76:89) {
  details: undefined,
  docsPath: '/api/WagmiProvider',
  metaMessages: undefined,
  shortMessage: '`useConfig` must be used within `WagmiProvider`.'
}
Error occurred prerendering page "/dashboard/wallet_connect". Read more: https://nextjs.org/docs/messages/prerender-error
WagmiProviderNotFoundError: `useConfig` must be used within `WagmiProvider`.
Docs: https://wagmi.sh/react/api/WagmiProvider.html
Version: wagmi@2.5.13
    at useConfig (file:///vercel/path0/node_modules/wagmi/dist/esm/hooks/useConfig.js:10:15)
    at useAccount (file:///vercel/path0/node_modules/wagmi/dist/esm/hooks/useAccount.js:8:20)
    at useConnectionStatus (file:///vercel/path0/node_modules/@rainbow-me/rainbowkit/dist/index.js:115:27)
    at ConnectButton (file:///vercel/path0/node_modules/@rainbow-me/rainbowkit/dist/index.js:5489:28)
    at Wc (/vercel/path0/node_modules/react-dom/cjs/react-dom-server.browser.production.min.js:68:44)
    at Zc (/vercel/path0/node_modules/react-dom/cjs/react-dom-server.browser.production.min.js:70:253)
    at Z (/vercel/path0/node_modules/react-dom/cjs/react-dom-server.browser.production.min.js:76:89)
    at $c (/vercel/path0/node_modules/react-dom/cjs/react-dom-server.browser.production.min.js:78:98)
    at Zc (/vercel/path0/node_modules/react-dom/cjs/react-dom-server.browser.production.min.js:71:145)
    at Z (/vercel/path0/node_modules/react-dom/cjs/react-dom-server.browser.production.min.js:76:89)

   Generating static pages (9/12) 

 ✓ Generating static pages (12/12) 
> Export encountered errors on following paths:
    /dashboard/wallet_connect
Error: Command "npm run build" exited with 1

解决思路

  • 全局包裹WagmiProvider:确保所有使用Wagmi或RainbowKit组件的页面都被WagmiProvider包裹。在Next.js的App Router中,直接在根layout.tsx里配置Provider;如果是Pages Router,就在_app.js里添加,避免仅在单个页面中局部配置导致预渲染时无法识别。
  • 标记为客户端组件:在包含钱包连接按钮的组件顶部添加'use client'指令,明确该组件仅在客户端运行,避免服务器预渲染时执行客户端专属逻辑。
  • 动态导入关闭SSR:如果组件无法全局包裹Provider,使用Next.js的dynamic导入组件并关闭SSR:
    import dynamic from 'next/dynamic'
    const ConnectButton = dynamic(() => import('../components/ConnectButton'), { ssr: false })
    
  • 验证Wagmi配置正确性:确认wagmi.config.js中的配置对象已正确初始化(包含链信息、连接器等),并正确传递给WagmiProvider。
  • 检查版本兼容性:确保RainbowKit版本与wagmi@2.5.13兼容,避免版本不匹配导致的钩子调用异常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 00:05:55