【问题标题】: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”还没有分配,在第二次调用中(如果你按两次)将显示正确的值。

      【讨论】:

      • 有没有办法在不点击两次的情况下提醒值?
      猜你喜欢
      • 2021-05-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多