Reputation: 347
I'm new to react native. I'm trying to use state and effect hooks.
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()
}
}, [])
But it throws an error
setIsKeyboardOpen is not a function.
Am I not allow to use state hook inside effect hook?
Upvotes: 0
Views: 686
Reputation: 380
Hi I used it in my code but not getting any error. Please check your code-
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;
Upvotes: 1