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

web3-react v8中如何从useWeb3React()获取原v6的library?

在@web3-react/core v8中替代library的获取方式

v8版本不再直接提供library对象,你需要通过useWeb3ReactCore返回的connector来获取对应provider,再基于它实现原有的功能:

1. 获取并初始化provider

import { useWeb3ReactCore } from '@web3-react/core'
import { Web3Provider } from '@ethersproject/providers'

const { connector } = useWeb3ReactCore()
let provider: Web3Provider | undefined

if (connector?.provider) {
  provider = new Web3Provider(connector.provider)
}

2. 调用原library的方法

拿到provider后,即可执行你需要的操作:

if (provider) {
  // 获取区块号
  const blockNumber = await provider.getBlockNumber()
  
  // 调用合约方法
  const result = await provider.call({
    to: call.address,
    data: call.callData,
  })
}

补充提示

  • 若需确保provider已就绪,可结合useEffect或状态管理处理异步逻辑
  • 不同类型的connector(如MetaMask、WalletConnect)返回的provider存在细微差异,但都可通过Web3Provider包装后使用ethers标准方法

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 10:24:51