Reactjs 事务处于挂起状态时处理UI(元掩码)

Reactjs 事务处于挂起状态时处理UI(元掩码),reactjs,ethereum,web3js,metamask,Reactjs,Ethereum,Web3js,Metamask,我有一个Metamask付款,效果很好。它是由一次点击按钮触发的。我想在事务挂起期间向用户显示一些东西,但我无法弄清楚如何显示,因为返回的承诺已经是挖掘的事务。代码如下: web3js.eth.sendTransaction({ to: '0x6Dc8956E655Ccd80187265107b848D8c5B6d2459', from: address, })

我有一个Metamask付款,效果很好。它是由一次点击按钮触发的。我想在事务挂起期间向用户显示一些东西,但我无法弄清楚如何显示,因为返回的承诺已经是挖掘的事务。代码如下:

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

您需要使用组件的状态

在构造函数中:

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

在send transaction函数中:(注意下面的设置状态)

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

(this.state.willShowLoader)?:

当您单击发送发送按钮时,而不是当用户在发送上签名并向网络广播时,此选项将为willShowLoader赋值为true。
this.state = {willShowLoader: false}
this.state.setState({willShowLoader: true}, sendTransaction)
web3js.eth.sendTransaction({
            to: '0x6Dc8956E655Ccd80187265107b848D8c5B6d2459',
            from: address,
            })
                .then(function (txHash) {
                          this.setState({willShowLoader:false})
                                console.log(txHash);
                         }).catch(error => {
                            console.log(error);
                          });
                  })
(this.state.willShowLoader)?<Spinner/>:<notSpinner/>