我的MetaMask已启用,但在控制台中我看到空数组image here,当我尝试console.log(web3.eth.accounts[0])
时,它返回undefined
。
但是当我使用console.log(web3.eth)
时,我会在控制台中看到所有数据image here
有人知道为什么web3.eth.accounts[0]
或web3.eth.accounts
不起作用吗?
<html>
<head>
<title>TEST</title>
</head>
<body>
<script>
window.addEventListener('load', function(){
if( typeof web3 !='undefined'){
console.log('web3 detected');
web3 = new Web3(web3.currentProvider);
console.log(web3.eth.accounts);
}else{
alert("please install MetaMask");
}
});
</script>
</body>
</html>
答案 0 :(得分:1)
我解决了问题,使用:
web3.eth.getAccounts((err, res) => {
console.log(res[0]);
});
但无论如何仍然存在问题,为什么web3.eth.accounts [0]不起作用?
答案 1 :(得分:0)
web3.eth.accounts[0]
不起作用,因为web3.eth.accounts
不是帐户列表,如docs中所述:
像这样获取帐户:
var account = null;
web3.eth.getAccounts(async function(error, accounts) {
if (error == null && accounts.length > 0) {
account = accounts[0];
}
}