Как правильно ожидать когда выполниться
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);
}