Здрасьте! И так у меня есть select со списком разных сортировок и див с элементами которые нужно отсортировать(это как раз setMatched который не обновляется), всё вызывается, всё работает кроме setMatched он отрабатывает только со второй смены:
<select onChange={(e) => setSelectValue(+e.target.value)} value={selectValue}>
<option value="1">От дешёвых к дорогим</option>
<option value="2">От дорогих к дешёвых</option>
<option value="3">Популярные</option>
<option value="4">По рейтингу</option>
</select>
И вот сама смена state in useEffect:
useEffect(() => {
if (selectValue === 1) {
console.log('first');
setMatched(findInput.matchFound.sort((first, second) => first.price[0] - second.price[0]));
} else if (selectValue === 2) {
console.log('second');
setMatched(findInput.matchFound.sort((first, second) => second.price[0] - first.price[0]));
}
}, [findInput.matchFound, selectValue])
тут идёт сортировка массива после выбора значения из select, главная загвоздка что state обновляет только после второго раза, а консоль отрабатывает, я уже и в функцию выносил и switch case использовал но потом прочитал что setState асинхронное, наверное нужно использовать async await, но я вообще не понимаю как это реализовать, подскажите пожалуйста как обойти это, спасибо.