Verwendung von Web3-Javascript-Code, um den Kontostand des ausgewählten Kontos in Metamask abzurufen und in HTML anzuzeigen,
web3.eth.getCoinbase(function(err, account) {
if (err === null) {
App.account = account;
$("#account").text(account);
web3.eth.getBalance(account, function(err, balance) {
if (err === null) {
$("#accountBalance").text(web3.fromWei(balance, "ether") + " ETH");
}
});
}
});
und jetzt verwende ich angle 4 und versuche, den obigen Code in Typoskript zu konvertieren.
const Web3 = require('web3');
const contract = require('truffle-contract');
const myBettingArtifact =
require('../../../build/contracts/Test.json');
declare var window: any;
...
account: any;
accounts: any;
web3: any;
balance: number;
this.web3.eth.getAccounts((err, accs) => {
if (err != null || accs.length === 0) {
return;
}
this.accounts = accs;
this.account = this.accounts[0];
this.web3.eth.getBalance(this.account, function(err, balance) {
this.balance = this.web3.fromWei(balance, "ether") + " ETH"
});
});
Allerdings bekomme ich einen Fehler
Uncaught TypeError: Eigenschaft „fromWei“ von undefined kann nicht gelesen werden
Was ist hier das Problem?
Anscheinend this
ist dies in der anonymen Callback-Funktion, an die Sie übergeben, nicht dasselbe getBalance
. Versuchen Sie, es durch eine fette Pfeilfunktion zu ersetzen , die den äußeren this
Wert an den inneren Bereich bindet.
this.web3.eth.getBalance(this.account, (err, balance) => {
this.balance = this.web3.fromWei(balance, "ether") + " ETH"
});
web3.eth.getBalance(this.userWalletAddress, (err, balance) => { this.userBalance = web3.utils.fromWei (balance, "ether") + " ETH" });
Wjachaslaw Gerchicov
account
variablemartriay
Wjachaslaw Gerchicov
Kunvar Singh