Muyie
Muyie

Reputation: 347

useState is not a function inside useEffect

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?enter image description here

Upvotes: 0

Views: 686

Answers (1)

Kshitij
Kshitij

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;![enter image description here](https://i.sstatic.net/6bByT.jpg)

Upvotes: 1

Related Questions