Можете ли вы задать свой вопрос немного яснее?Ваш код имеет смысл и выглядит хорошо для какой-то неизвестной цели.Эта цель как раз то, что мне нужно знать.
- Когда вам нужен txHash, это после каждого вызова этой функции или вы пытаетесь отследить что-то еще.
- Почему это не может быть переменная состояния, вы не включили состояние в свой фрагмент кода, поэтому мне пришлось посмотреть на остальную часть вашего кода и не найти причины, почему бы и нет.Вы используете его внутри фрагмента, так что вы можете использовать его до некоторой степени.Я не использую React, поэтому, возможно, есть какой-то цикл рендеринга, проблема с прослушивателем или другая причина, по которой вы не можете использовать setState.
С учетом вышесказанного проверьте эту ссылку вразличные события, которые вы можете прослушивать с помощью on
, так как я думаю, что вы слушаете неправильное событие или выводите неправильный текст.Когда вы устанавливаете сообщение штата, чтобы сказать, что передача была добыта, я не верю, что это действительно было.
Я бы использовал confirmation
и отображал сообщение только при первом срабатывании события, а затем игнорировал оставшиеся 23. Объект, возвращаемый вместе с номером подтверждения, описан здесь и имеетtransactionHash
переменная, которую вы можете использовать как для проверки того, что транзакция была подтверждена, так и для получения хэша одновременно.Теперь ваш вызов события больше не такой расточительный, и вы можете использовать тот же вызов setState для сообщения, что и для txHash, или даже вообще пропустить сохранение txHash (если вы все еще можете использовать setState асинхронно).