{
setErrors([]);
if(fields.title == ''){
setErrors(prevArray => [...prevArray, 'Введите название']);
}
*тут вывод*
}
<TouchableOpacity onPress={() => goAddAds()}></TouchableOpacity>
fields это второй стейт, там значения инпутов. в них все вовремя меняется.
а стейт errors обновляется только при втором нажатии, тоесть при втором вызове функции. при первом нажатии стейт возвращает старое значение, хотя выводится после setErrors. почему? если заменить локальный usestate на стейт в мобх, то все ок.
то есть https://stackoverflow.com/questions/30782948/why-calling-react-setstate-method-doesnt-mutate-the-state-immediately и вот https://stackoverflow.com/questions/54069253/usestate-set-method-not-reflecting-change-immediately
Обсуждают сегодня