在事务处于挂起状态时处理UI(MetaMask)

时间:2018-06-09 17:56:28

标签: reactjs ethereum web3js metamask

我有一个Metamask支付工作正常。它由onClick按钮触发。我希望在事务挂起期间向用户显示一些内容,但我无法弄清楚如果返回的promise已经是挖掘的事务。这是代码:

web3js.eth.sendTransaction({
                to: '0x6Dc8956E655Ccd80187265107b848D8c5B6d2459',
                from: address,
                })
                    .then(function (txHash) {
                                    console.log(txHash);
                             }).catch(error => {
                                console.log(error);
                              });
                      })

1 个答案:

答案 0 :(得分:0)

您需要使用组件的状态

构造函数中

this.state = {willShowLoader: false}

在您的 onclick函数中(第二个参数是回调)

this.state.setState({willShowLoader: true}, sendTransaction)

在您的发送交易功能中:(请注意其中的setState)

web3js.eth.sendTransaction({
            to: '0x6Dc8956E655Ccd80187265107b848D8c5B6d2459',
            from: address,
            })
                .then(function (txHash) {
                          this.setState({willShowLoader:false})
                                console.log(txHash);
                         }).catch(error => {
                            console.log(error);
                          });
                  })

然后在您的 render 方法中:(使用条件渲染)

(this.state.willShowLoader)?<Spinner/>:<notSpinner/>