Асинхронная функция с экраном загрузки

Я устанавливаю состояние в конструкторе следующим образом - это для текста, который говорит "Извлечение данных...":

this.state = {
      loading: true
    }

Затем у меня есть такая асинхронная функция, которая будет получать некоторые данные.

componentDidMount() {
    this.fetchData().done()
  }

  async fetchData() {
    const response = await fetch(URL)
    const json = await response.json()
    const stars = json.stargazers_count
    this.setState({ stars })
  }

Как узнать, когда я могу установить для состояния isLoading значение false, скрыть текст загрузки и отобразить данные? Кажется, мне не хватает какой-то части здесь!

Спасибо, Джордан.


person Jordan McDonald    schedule 17.10.2016    source источник
comment
async/await не является частью ES7.   -  person Felix Kling    schedule 21.10.2016
comment
@FelixKling, разве это официально не принято как предложение ES7? Я бы сказал, что это достаточно близко.   -  person Patrick Roberts    schedule 21.10.2016
comment
@patrick: Предложения не являются частью какого-либо выпуска, пока они не достигнут этапа 4. ES7 (ES2016) был выпущен в этом году и не содержит async/await (ecma-international.org/ecma-262/7.0). Это будет частью ES2017.   -  person Felix Kling    schedule 21.10.2016


Ответы (1)


Когда вы вставляете stars в свое состояние, вы также можете установить isLoading в false

this.setState({ stars, isLoading: false });
person jmurzy    schedule 17.10.2016