Показать сообщение отдельно
  #2 (permalink)  
Старый 09.05.2020, 18:56
Профессор
Отправить личное сообщение для CryNet Посмотреть профиль Найти все сообщения от CryNet
 
Регистрация: 02.01.2019
Сообщений: 151

Дополню ответ...

Если изменить функцию:

filtredInput() {
    let items = json

    setTimeout(() => {

      if (this.state.search.length !== 0) {
        items = items.filter(word =>
          word.name.toLocaleLowerCase().indexOf(this.state.search.toLocaleLowerCase()) !== -1
        )
      }

      if (this.state.filters.length !== 0) {
        items = items.filter(element => this.state.filters.every(key => element[key]));
      }

      this.setState( {items} )
    }, 1000);

  }


То всё работает как нужно, только с задержкой. Дело таки в том, что функция выполняется до установки стейта. Пока нет идей как это пофиксить.
Ответить с цитированием