реагировать; Parallel Async / Await получения данных, но не определено в setState () - PullRequest
1 голос
/ 07 мая 2020

Я пытаюсь выполнять вызовы async / await параллельно, а не один за другим, но получаю сообщение об ошибке ниже. Как я могу это исправить?

Error: Element type is invalid: expected a string (for built-in components) 
or a class/function (for composite components) but got: undefined.
You likely forgot to export your component from the file it's defined in, 
or you might have mixed up default and named imports.

код ниже работает нормально

state = {}
async componentDidMount () {
  const global = await fetchSummary()
  const countries = await fetchSummaryByCountry()
  const dailyData = await fetchCountryHistory()
  const accessedCountry = await fetchCountryName()

  this.setState({
    global: { ...global },
    dailyData: dailyData,
    accessedCountry: accessedCountry,
    countries: countries
  })
}

код ниже дает ошибку

state = {}
async componentDidMount () {
  const [global, countries, dailyData, accessedCountry] = await Promise.all([
    fetchSummary(),
    fetchSummaryByCountry(),
    fetchCountryHistory(),
    fetchCountryName()
  ])
  this.setState({
    global: global,
    dailyData: dailyData,
    accessedCountry: accessedCountry,
    countries: countries
  })
}

Как ни странно, оба кода передают реквизиты правильно, но верхний выдает ошибку, и страница не отображается. Кроме того, есть ли лучший способ решить эту проблему?

Заранее благодарим за то, что нашли время на это.

...