【问题标题】:setState not setting the value correctly in react native (expo)setState 在本机反应(博览会)中未正确设置值
【发布时间】:2020-08-05 13:42:31
【问题描述】:
我正在设置一个值以在按下按钮时使用 useState 挂钩但不起作用。
const [text, setText] = useState("")
const demo = () => {
setText("Hello world")
alert(text)
}
<TouchableOpacity onPress={demo}>
<Text>set Value</Text
</TouchableOpacity>
【问题讨论】:
标签:
reactjs
react-native
react-hooks
expo
setstate
【解决方案1】:
setText 是异步函数。
如果您alert(text) 旧值将被提醒。
你应该useEffect
const [text, setText] = useState("")
const demo = () => {
setText("Hello world")
}
useEffect(() => {
alert(text)
}, [text])
<TouchableOpacity onPress={demo}>
<Text>set Value</Text
</TouchableOpacity>
【解决方案2】:
setState是异步的,这意味着当你调用alarm时,参数“text”还没有分配,在第二次调用中(如果你按两次)将显示正确的值。