在 ReactJS 中集成时出现 WalletConnect 错误 - Uncaught (in promise) TypeError: this.send is not a function

Posted

技术标签:

【中文标题】在 ReactJS 中集成时出现 WalletConnect 错误 - Uncaught (in promise) TypeError: this.send is not a function【英文标题】:WalletConnect error while integration in ReactJS - Uncaught (in promise) TypeError: this.send is not a function 【发布时间】:2021-02-04 10:43:18 【问题描述】:

我正在将 WalletConnect 集成到 React DApp 但得到 this.send 不是函数错误。

我已确定问题出在 WalletConnectProvider 上,但我已按照他们文档中提到的相同步骤进行操作。

请查看我的代码并告诉我如何解决此问题。谢谢。

import WalletConnectProvider from '@walletconnect/web3-provider';
import config from './config';
import Web3 from 'web3';

export const walletConnect = async (setAddr) => 
//  Create WalletConnect Provider
const provider = new WalletConnectProvider(
    infuraId: config.tokenContract.infuraKey, // Required
);

//  Enable session (triggers QR Code modal)
await provider.enable();

console.log('provider', provider);
if (provider.connected) 
    console.log('wallet connect address', provider.accounts[0]);
    setAddr(provider.accounts[0]);


//  Create Web3
const web3 = new Web3(provider);
console.log('web3', web3);

const _contract = new web3.eth.Contract(
   config.tokenContract.contractABI,
   config.tokenContract.contractAddress
);
const data = await _contract.methods.hatchNest().encodeABI();
const gasPrice = 20000000000;
const gasLimit = 90000;

const tx = 
   from: '0xFF12586A1eCf65b56d828712A8d4B48D1CEC8962',
   to: config.tokenContract.contractAddress,
   data: data,
   gasPrice: web3.utils.toHex(gasPrice),
   gasLimit: web3.utils.toHex(gasLimit),
;
 // Send Transaction
 const txHash = await web3.eth.sendTransaction(tx);
 console.log('sendTransaction', txHash);
;

【问题讨论】:

遇到了同样的问题。用 ethers.js 替换了 web3js,它就可以工作了。 【参考方案1】:

这是 web3.js 1.3.x 中的一个已知错误

https://github.com/ethereum/web3.js/issues/3790

降级 web3.js 1.2.x.

【讨论】:

以上是关于在 ReactJS 中集成时出现 WalletConnect 错误 - Uncaught (in promise) TypeError: this.send is not a function的主要内容,如果未能解决你的问题,请参考以下文章

在我的 iOS 应用程序中集成 Facebook 应用程序时出现重定向问题

如何在 ReactJs 应用程序中集成 moengage?

在我的 Reactjs 网络应用程序中集成谷歌地图后,如何获得“纬度”和“经度”?

如何在 C# windows 应用程序中集成 matlab 项目

如何在 android 4.3 中集成 paypal?

在 reactjs 中使用表单并获取请求时出现问题