setState неверно устанавливает значение в реакции на родной (expo) - PullRequest
0 голосов
/ 05 августа 2020

Я устанавливаю значение для хука useState при нажатии кнопки, но не работаю.

const [text, setText] = useState("")

const demo = () => {
   setText("Hello world")
   alert(text)
}


<TouchableOpacity onPress={demo}>
   <Text>set Value</Text
</TouchableOpacity>

Ответы [ 2 ]

2 голосов
/ 05 августа 2020

setText - асинхронная c функция. Если вы alert(text) старое значение будет предупреждено.

Вы должны useEffect


const [text, setText] = useState("")

const demo = () => {
  setText("Hello world")
}

useEffect(() => {
  alert(text)
}, [text])


<TouchableOpacity onPress={demo}>
   <Text>set Value</Text
</TouchableOpacity>
0 голосов
/ 05 августа 2020

setState является асинхронным, это означает, что при вызове alert с параметром «текст» еще не назначен, при втором вызове (если вы нажмете два раза) будет отображаться правильное значение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...