如何通过@walletconnect/react-native-dapp获取已连接钱包(含MetaMask)的地址?
使用@walletconnect/react-native-dapp获取MetaMask钱包地址
前提准备
确保React Native项目已安装并配置好@walletconnect/react-native-dapp依赖,且完成MetaMask钱包与WalletConnect的配对授权流程。
获取地址步骤
1. 导入依赖
在组件文件中引入所需的hooks:
import { useWalletConnect } from '@walletconnect/react-native-dapp';
2. 获取连接状态与账户数据
通过useWalletConnect hooks提取关键数据:
const { connected, accounts } = useWalletConnect();
3. 提取MetaMask地址
连接成功后,accounts数组会返回已授权的钱包地址列表,直接取第一个元素即可(MetaMask连接后通常仅返回一个地址):
if (connected && accounts.length > 0) { const metaMaskAddress = accounts[0]; // 可将地址用于后续业务逻辑,比如展示或链上交互 console.log('MetaMask地址:', metaMaskAddress); }
4. 监听连接状态变化
可以通过useEffect监听连接状态,在连接成功时自动获取地址:
import { useEffect } from 'react'; // ... useEffect(() => { if (connected && accounts.length > 0) { const metaMaskAddress = accounts[0]; // 处理地址,比如存入组件状态 } }, [connected, accounts]);
注意事项
- 必须确保用户完成MetaMask与WalletConnect的配对授权,否则
connected为false,accounts数组为空。 - 返回的地址是标准以太坊格式(以
0x开头),可直接用于链上操作。
内容的提问来源于stack exchange,提问作者user19686917
相关产品推荐
相关产品推荐

