Javascript 由本机状态反应引起的无止境循环
我试图根据键盘是否打开来显示/隐藏组件。我很难理解为什么我会以一个永无止境的循环结束。这是我的密码:Javascript 由本机状态反应引起的无止境循环,javascript,reactjs,react-native,react-hooks,react-native-ios,Javascript,Reactjs,React Native,React Hooks,React Native Ios,我试图根据键盘是否打开来显示/隐藏组件。我很难理解为什么我会以一个永无止境的循环结束。这是我的密码: const [isKeyboardOpen, setIsKeyboardOpen] = useState(true); useEffect(() => { Keyboard.addListener("keyboardDidShow", _keyboardDidShow); Keyboard.addListener("keyboardDidH
const [isKeyboardOpen, setIsKeyboardOpen] = useState(true);
useEffect(() => {
Keyboard.addListener("keyboardDidShow", _keyboardDidShow);
Keyboard.addListener("keyboardDidHide", _keyboardDidHide);
// cleanup function
return () => {
console.log('cleanup')
Keyboard.removeListener("keyboardDidShow", _keyboardDidShow);
Keyboard.removeListener("keyboardDidHide", _keyboardDidHide);
};
}, []);
const _keyboardDidShow = () => {
console.log('opened')
setIsKeyboardOpen(true);
};
const _keyboardDidHide = () => {
console.log('closed')
setIsKeyboardOpen(false);
};
请帮忙。我希望这能解决你的问题
const [isKeyboardOpen, setIsKeyboardOpen] = useState(true);
useEffect(() => {
Keyboard.addListener("keyboardDidShow", () =>_keyboardDidShow());
Keyboard.addListener("keyboardDidHide", () =>_keyboardDidHide());
// cleanup function
return () => {
console.log('cleanup')
Keyboard.removeListener("keyboardDidShow",() => _keyboardDidShow());
Keyboard.removeListener("keyboardDidHide", () =>_keyboardDidHide());
};
}, []);
const _keyboardDidShow = () => {
console.log('opened')
setIsKeyboardOpen(true);
};
const _keyboardDidHide = () => {
console.log('closed')
setIsKeyboardOpen(false);
};
我希望这能解决你的问题
const [isKeyboardOpen, setIsKeyboardOpen] = useState(true);
useEffect(() => {
Keyboard.addListener("keyboardDidShow", () =>_keyboardDidShow());
Keyboard.addListener("keyboardDidHide", () =>_keyboardDidHide());
// cleanup function
return () => {
console.log('cleanup')
Keyboard.removeListener("keyboardDidShow",() => _keyboardDidShow());
Keyboard.removeListener("keyboardDidHide", () =>_keyboardDidHide());
};
}, []);
const _keyboardDidShow = () => {
console.log('opened')
setIsKeyboardOpen(true);
};
const _keyboardDidHide = () => {
console.log('closed')
setIsKeyboardOpen(false);
};
组件中是否有其他代码?如果是这样,请发布整个组件。UseMoom而不是useEffect,并确保传递此[isKeyboardOpen]而不是空数组。组件中是否有其他代码?如果是这样,请发布整个component.usemo而不是useffect,并确保传递此[isKeyboardOpen]而不是空数组