Приветствую всех, читающих этот вопрос!
Есть селектор, value которого работает как фильтр:
const { Option } = Select;
const dispatch = useDispatch();
const [filters, setFilters] = useState({status: null});
<Select
style={{ width: 100 }}
placeholder="Статус"
optionFilterProp="children"
onChange={onChangeStatus}>
<Option value="created">Создан</Option>
<Option value="added">Добавлен</Option>
<Option value="photo">Фотография продукта</Option>
</Select>
При выборе одного из значений внутри селектора срабатывает событие, изменяющее состояние;
function onChangeStatus(value) {
setFilters({ status: value})
dispatch(getFilters(filters));
}
Но дело в том, что в action приходит старое состояние {status: null}, никак не могу написать правильно асинхронность, чтобы успело поменяться состояние и лишь потом сработал dispatch. Переписывал функцию в вот такой вид, но в консоли ошибка.
function onChangeStatus (value) {
setFilters({
...filters, status: value
}, () => {
dispatch(getFilters(filters));
});
}
Заранее благодарен за любую помощь!