javascript - 如何使用 web3-react 将 WalletConnect 集成到您的 Dapp 中?
问题描述
我一直在尝试按照web3-react的文档来集成WalletConnect。
我用于连接器的配置如下:
import { WalletConnectConnector } from '@web3-react/walletconnect-connector';
export const walletconnect = new WalletConnectConnector({
rpc: { 1: RPC_URLS[1], 4: RPC_URLS[4] },
infuraId: INFURA_TOKEN,
bridge: BRIDGE_URL,
qrcode: true,
pollingInterval: 15000,
});
另外,包的版本如下:
"@web3-react/core": "^6.0.9",
"@web3-react/walletconnect-connector": "^6.2.0",
当我使用下面代码中解释的activate
函数时:useWeb3React()
const { connector, activate, active, account } = useWeb3React();
activate(walletconnect, undefined, true)
.catch((error) => {
if (error instanceof UnsupportedChainIdError) {
activate(walletconnect)
} else {
console.log('Pending Error Occured')
}
})
它能够生成二维码,我也能够通过手机上的 MetaMask 应用程序成功扫描,并且在显示成功连接的移动应用程序上。
但是,在 Web App 的控制台日志中,它会显示一条警告信息
Warning: Suppressed stale connector activation [object Object]
因此,它无法接收account
变量内的地址。
重要提示:我使用了类似的代码,InjectedConnector
它对 MetaMask 工作得很好。
虽然上述问题也出现在其他钱包中。这些是我面临问题的钱包:
任何建议都会对我有很大帮助。
解决方案
我在开发 tagprotocol.com 时也遇到了同样的问题,但是我通过两种方式解决了它:
在后续行中多次调用激活函数(我知道听起来很奇怪)
设置调用激活函数的延迟,像这样
setTimeout(() => 激活(...), 500)
我不确定你的代码结构,所以我不知道这有什么帮助。但是过时的连接器对象问题是我使用上述两种方法解决的问题。在评论中告诉我。
推荐阅读
- javascript - Ionic 3 在构建时更改变量/主题
- apache-kafka - 通过在 Kafka Spout 中使用新的 Kafka 版本 2.1.0 和 Apache Storm 1.2.2 来获取 ClassNotFoundException
- tensorflow - 无法连接到 X 服务器 GOOGLE COLAB
- ios - Gmail 有没有办法从 UIapplication.shared.open url 的文本中识别换行符
- mysql - mysql如何从偶数行中找到中位数
- reactjs - 如何使用 ReactJS 打开多个消息框
- r - 如何取消嵌套在 data.frame 列中的列表?
- javascript - 如何在具有嵌套对象的第三方库上创建间谍 - Excel.Workbook.xlsx.WriteFile()
- swagger-ui - 在 Swagger UI 中使用相同架构的多个错误代码
- c++ - 从哪里获得 _fileno 和 _O_U16TEXT?