Web3js

MetaMask 確認後刷新頁面。Web3js 和反應()

  • May 8, 2020

我想在 MetaMask 確認後重新載入**React Web3 錢包的頁面。**這意味著當 ERC-20 代幣發送交易被確認時,頁面應該重新載入或狀態應該更新以顯示新的餘額。

在這個傳遞函式中,虛擬碼以“.on()”開頭:

function refreshPage() {
 window.location.reload(false);
}

transfer(recipient, amount) {
 this.state.waviiiToken.methods.transfer(recipient, amount).send({ from: this.state.account })
 .on('confirmation' refreshPage);
}

請讓我知道這是否可行,或者如果您有一個範例,我可以參考更新狀態或刷新頁面。

我在成功交易後添加了一個 window.location.reload() (我的 web3 等待功能)。這適用於本地測試網,但由於主網和其他測試網的等待時間較長,因此必須進行更多探勘。

** 編輯 **

謝謝@JaxCoder,這幫助我找到了解決方案。window.location.reload() 是其中的一部分。為了確保載入器/進度條一直執行直到收到交易的完整確認,以下是解決方案:

transfer(recipient, amount) {
 this.setState({ loading: true })
 this.state.waviiiToken.methods.transfer(recipient, amount).send({ from: this.state.account }).on('confirmation', (reciept) => {
   this.setState({ loading: false })
   window.location.reload()
 })
}  

引用自:https://ethereum.stackexchange.com/questions/82555