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 引用错误
- 代码中
storageOptions的语法错误,缺少冒号:storageOptions={{ asyncStorage: AsyncStorage, // 修正为键值对格式 }} - React Native 0.60+ 已移除核心库中的AsyncStorage,需单独安装依赖:
并正确导入:npm install @react-native-async-storage/async-storageimport 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
相关产品推荐
相关产品推荐

