我想显示当前的Metamask帐户,所以我如下设置当前的Metamask帐户。
async componentDidMount() {
const ethaddress = await web3.eth.accounts[0]
}
<p>{ethaddress}</p>
但是,ethaddress
永远不会出现在前端。
在控制台命令中,如果键入web3.eth.accounts[0]
,则显示当前的元掩码帐户。但是,如果我键入ethaddress
,它将显示undefined
。
是否有建议显示当前的Metamask帐户?
谢谢。
尝试做这样的事情:
web3.eth.getCoinbase(function (err, account) {
if (err === null) {
App.account = account;
console.log("account", App.account);
}
})
以下代码在带有copy-webpack-plugin(v4.6.0),css-loader(v3.2.0)的Web浏览器中运行良好;样式加载器(v1.0.0),web3(v1.2.1),webpack(v4.41.0)和webpack-dev-server(v3.8.1)。
import {default as Web3} from 'web3';
web3.eth.getAccounts(function (err, accs) {
if (err != null) {
self.setStatus("There was an error fetching your accounts");
return;
}
if (accs.length === 0) {
self.setStatus("Make sure that you installed and started Metamask plugin and reload this page");
return;
}
console.log('Got account: ', accs[0]);
});
但是该代码仅在页面加载时用户已经通过Metamask插件登录的情况下有效。查看更详细(运行)的代码示例将很有帮助。