Как вернуть данные JSON в состояние реакции? - PullRequest
0 голосов
/ 12 декабря 2018

У меня есть компонент реагирования, который делает .post для экспресс-сервера (мой собственный сервер).Сервер использует web3 для подписания транзакции на Ethereum.Как только транзакция включена в блок, объект json возвращается на сервер.Это выглядит так:

{ blockHash: '0xcd08039bac40e2865886e8f707ce9b901978c339d3abb81516787b0357f53fbd',
  blockNumber: 4611028,
 ...other data...
  transactionHash: '0x12c65523743ed169c764553ed2e0fb2af1710bb20a41b390276ffc2d5923c6a9',
  transactionIndex: 1 }

Мне нужно сохранить transactionHash в состоянии вышеупомянутого компонента.Я искал 2 дня и, вероятно, упускаю что-то очень очевидное.

Это код на стороне сервера или на стороне клиента?Нужно ли изучать и использовать асинхронную синхронизацию из-за внутренней задержки при разговоре с Ethereum?

Любая помощь приветствуется!

Спасибо

1 Ответ

0 голосов
/ 12 декабря 2018

Чтобы сделать запрос на публикацию, вам нужно выполнить этот клиент через componentDidMount, а затем сохранить ответ, как обычно.Вы можете найти полные примеры здесь: https://reactjs.org/docs/faq-ajax.html на странице реакции.

fetch("https://api.example.com/items")
    .then(res => res.json())
    .then(response => this.setState(response));

Вы должны настроить операцию извлечения так, чтобы она была отправлена ​​после запроса, но вы можете найти дополнительную информацию, касающуюся извлечения, здесь: https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API/Using_Fetch

fetch("https://api.example.com/items", {
  method: 'POST',
  body: JSON.stringify(data),
  headers:{
    'Content-Type': 'application/json'
  }
})
.then(res => res.json())
.then(response => this.setState(response))
.catch(error => console.error('Error:', error));

Правка (пример с Axios):

componentDidMount() {
    axios.get("https://api.example.com/items")
      .then(res => {
        const items = res.data;
        this.setState(items);
      })
  }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...