@uroot

Как дождаться установки state?

Как правильно ожидать когда выполниться setState и со значениями в state можно работать?

Есть такой пример:
filterItems = ( event ) => {
    ...
    this.setState( {items} )
    //  ниже идёт обращение к state 
  }


И нормально ли вообще ждать state? Не говорит ли это о неправильно организованной логике?

Пример кода

searchItems = ( {currentTarget} ) => {
    const search = currentTarget.value
    let items

    if(this.state.items.length) {
      items = this.state.items
    } else {
      items = json
    }

    this.setState({ search })


    // этот код должен выполниться после установи стейта
    setTimeout(() => {
      const result = items.filter(word =>
          word.name.toLocaleLowerCase().indexOf(this.state.search.toLocaleLowerCase()) !== -1
      )
      this.setState( {items : result} )
    }, 1);
  }

  • Вопрос задан
  • 414 просмотров
Решения вопроса 1
@McBernar
setState(updater, [callback])

Колбек будет вызван после апдейта стейта.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы