我正在开发一个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。现在,当我运行完全相同的代码时,出现以下错误:
Error: Invalid JSON RPC response: undefined
TypeError: e is not a function[Learn More]
有什么想法吗?
答案 0 :(得分:1)
我遇到了同样的问题,我用下面的代码解决了:
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]);
}
});
Makbe您还需要添加ethereum.enable();
。希望这可以帮助。