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

React Native中WalletConnectProvider无法使用问题求助

问题:React Native中使用@walletconnect/react-native-dapp时出现WalletConnectProvider未定义错误

我在React Native应用中尝试集成MetaMask等非托管钱包,使用@walletconnect/react-native-dapp库,代码片段如下:

import { WalletConnectProvider } from '@walletconnect/react-native-dapp';
import AsyncStorage from '@react-native-async-storage/async-storage';
import { Platform } from 'react-native';

// 组件代码
<WalletConnectProvider
  redirectUrl={Platform.OS === 'web' ? window.location.origin : 'yourappscheme://'}
  storageOptions= {{
    asyncStorage AsyncStorage,
  }}>
  <> {/* awesome app here */} </>
</WalletConnectProvider>

运行应用时出现以下错误:

TypeError: undefined is not an object (evaluating '_$$_REQUIRE(_dependencyMap[0], "./providers").WalletConnectProvider')

Error: Requiring module "node_modules\@walletconnect\react-native-dapp\dist\providers\index.js", which threw an exception: TypeError: Object prototype may only be an Object or null.

可能的原因及解决方案

  • 依赖安装不完整或版本不兼容
    删除现有依赖和锁文件,重新安装:

    # npm 用户
    rm -rf node_modules package-lock.json
    npm install
    
    # yarn 用户
    rm -rf node_modules yarn.lock
    yarn install
    

    若问题仍存在,尝试安装库的最新稳定版:

    npm install @walletconnect/react-native-dapp@latest
    
  • 导入方式错误或库导出结构变更
    检查库的导出结构,尝试不同的导入写法:

    // 命名导出
    import { WalletConnectProvider } from '@walletconnect/react-native-dapp';
    // 或默认导出(若版本支持)
    import WalletConnectProvider from '@walletconnect/react-native-dapp';
    
  • AsyncStorage 引用错误

    1. 代码中storageOptions的语法错误,缺少冒号:
      storageOptions={{
        asyncStorage: AsyncStorage, // 修正为键值对格式
      }}
      
    2. React Native 0.60+ 已移除核心库中的AsyncStorage,需单独安装依赖:
      npm install @react-native-async-storage/async-storage
      
      并正确导入:
      import AsyncStorage from '@react-native-async-storage/async-storage';
      
  • 缓存导致的加载异常
    清除React Native Metro缓存及平台构建缓存:

    # 重置Metro缓存
    npx react-native start --reset-cache
    
    # iOS 清理Pods并重新安装
    cd ios && pod install && cd ..
    
    # Android 清理构建缓存
    cd android && ./gradlew clean && cd ..
    
  • 内部依赖冲突
    排查Web3相关依赖的版本一致性,比如@walletconnect/core等,可通过以下命令查看依赖树:

    npm ls @walletconnect/core
    

    若存在版本冲突,可在package.json中添加resolutions字段强制统一版本:

    "resolutions": {
      "@walletconnect/core": "2.10.1" // 替换为兼容的版本号
    }
    

内容的提问来源于stack exchange,提问作者Padma Sinai Kunkolienker

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 12:30:53