【发布时间】:2021-02-16 14:01:30
【问题描述】:
我是原生反应的新手。我正在尝试使用状态和效果挂钩。
const {isKeyboardOpen, setIsKeyboardOpen} = useState(false)
useEffect(() => {
const keyboardDidShowListener = Keyboard.addListener('keyboardDidShow', () => setIsKeyboardOpen(true))
const keyboardDidHideListener = Keyboard.addListener('keyboardDidHide', () => setIsKeyboardOpen(false))
return () => {
keyboardDidShowListener.remove()
keyboardDidHideListener.remove()
}
}, [])
但是会报错
setIsKeyboardOpen 不是函数。
我不允许在效果钩子中使用状态钩子吗?
【问题讨论】:
-
尝试重建您的应用,有时重建会有所帮助。
-
您的州有大括号 (
{ }),useState用方括号声明。将其更改为[isKeyboardOpen, setIsKeyboardOpen] = ... -
我已经挣扎了将近一天,只是为了发现它是方括号。哈哈哈。谢谢@康斯坦丁