обработка 2-го ответа при выполнении нескольких запросов GET в React - PullRequest
0 голосов
/ 06 ноября 2018

Мне удалось передать первый ответ в данные имени состояния (this.state.data) компонента. Но когда я пытаюсь выполнить второй запрос data1 от другого API, он не появляется. Оба ответа хороши при проверке в инструменте dev, и первый я могу использовать данные.

class WeatherApp extends React.Component {
constructor(props) {
  super(props);
  this.state = {
    error: null,
    isLoaded: false,
    data: [],
    data1: []
  };
}

componentDidMount() {
  Promise.all([
      fetch("weatherAPI.php"),
      fetch("weatherAPIToday.php")
    ]).then(([res, res1]) => res.json())
    .then((result, result1) => {
        this.setState({
          isLoaded: true,
          data: result,
          data1: result1
        }, console.log(result));
      },

      (error) => {
        this.setState({
          isLoaded: true,
          error
        });
      }
    );
}

1 Ответ

0 голосов
/ 06 ноября 2018

Поскольку и res, и res1 возвращают обещание, все, что вам нужно сделать, это обернуть их обоих в обещание # все

Promise.all([
    fetch("weatherAPI.php"),
    fetch("weatherAPIToday.php")
]).then(([res, res1]) => Promise.all(res.json(), res1.json()))
.then((result, result1) => {
    this.setState({
        isLoaded: true,
        data: result,
        data1: result1
    }, console.log(result));
})
.catch(error => {
    this.setState({ isLoaded: true, error });
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...