我是本机反应的新手。我正在尝试使用状态和效果挂钩。
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 不是函数。
我是否不允许在效果挂钩内使用状态挂钩?
答案 0 :(得分:1)
嗨,我在我的代码中使用了它,但没有收到任何错误。请检查您的代码-
import React, {useState, useEffect} from 'react';
import {Platform, Switch, Keyboard} from 'react-native';
import PropTypes from 'prop-types';
const SwitchComponent = (props) => {
const [isEnabled, setIsEnabled] = useState(false);
useEffect(() => {
const keyboardDidShowListener = Keyboard.addListener(
'keyboardDidShow',
() => setIsEnabled(true),
);
const keyboardDidHideListener = Keyboard.addListener(
'keyboardDidHide',
() => setIsEnabled(false),
);
return () => {
keyboardDidShowListener.remove();
keyboardDidHideListener.remove();
};
}, []);
return (
<Switch/>
);
};
export default SwitchComponent;