Обработка пользовательского интерфейса, когда транзакция находится в состоянии ожидания (MetaMask) - PullRequest
0 голосов
/ 09 июня 2018

У меня есть метамаска, которая отлично работает.Это вызвано нажатием кнопки.Я хочу показать что-то пользователю во время ожидания транзакции, но не могу понять, как возвращенное обещание уже является добытой транзакцией.Это код:

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

1 Ответ

0 голосов
/ 24 июля 2018

вам нужно использовать состояние вашего компонента

В конструкторе :

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);
                          });
                  })

Затем в вашем рендере метод: (с использованием условного рендеринга)

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