javascript Web3 1.1.0的问题

czq61nw1  于 2023-02-15  发布在  Java
关注(0)|答案(1)|浏览(140)

我正在开发一个React应用程序,它使用一个依赖Web3的库。我以前可以使用以下代码获取当前的Metamask地址:

const injectedWeb3 = window.web3 || undefined;

 this.state = {
      web3: injectedWeb3
    };

  getAccount() {
    const { web3 } = this.state;
    if (web3.eth.accounts[0]) return web3.eth.accounts[0];
    throw new Error('Your MetaMask is locked. Unlock it to continue.');
  }

然后,我将该库更新为最新版本,将其Web3依赖项更改为Web3 1.0。现在,当我运行完全相同的代码时,我得到以下错误:
错误:无效的JSON RPC响应:未定义的
TypeError:e不是函数[了解详情]
你觉得会发生什么事吗?

7fyelxc5

7fyelxc51#

我用这个代码解决了这个问题:

web3.eth.getAccounts(function (err, accounts) {
      if (err != null) {
        console.log(err)
      }
      else if (accounts.length === 0) {
        console.log('MetaMask is locked');
      }
      else {
        console.log('MetaMask is unlocked'); 
        console.log(accounts[0]);
      }
    });

也许您还需要添加ethereum.enable();

相关问题