簡體   English   中英

如何設置加載屏幕,直到在 react web3js 上確認交易

[英]How to set loading screen until transaction confirmed on react web3js

我對 Web3 和 React 開發還很陌生。 我想調用合約 function 並獲取加載屏幕,直到交易完成:

let transactions = await TokenContract.methods.buy().send({
    from: account,
    value: web3.utils.toWei(inputBuyQty, 'ether')
}, function (err, transactionHash) {
    if (!err) {
        console.log(transactionHash);
        setLoadingScreen(1);
        let receipt = web3.eth.getTransactionReceipt(transactionHash);
        console.log(receipt);
        setLoadingScreen(0);
    }
});

我將如何在提交請求后調用setLoadingScreen(1) ,並在交易生成后調用 setLoadingScreen setLoadingScreen(0)

setLoadingScreen(1);
let reciept;
try {
    reciept = await TokenContract.methods.buy().send({
        from: account,
        value: web3.utils.toWei(inputBuyQty, 'ether')
    });
} catch (err) {
    setLoadingScreen(0);
    // Print error stuff
    return;
}
setLoadingScreen(0);

contract.send在交易收據可用時解決。 一旦用戶需要提交交易就啟用加載屏幕,並在錯誤或收據可用時禁用它。

這應該可以幫助您:

const hangle = () =>{
    setLoadingScreen(1);
    try {
       let reciept = await TokenContract.methods.buy().send({
            from: account,
            value: web3.utils.toWei(inputBuyQty, 'ether')
        });
    } catch (err) {
       console.log(err)
    } finally{
       setLoadingScreen(0);
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM