简体   繁体   English

useState 不是 useEffect 内部的 function

[英]useState is not a function inside useEffect

I'm new to react native.我是新来的反应本地人。 I'm trying to use state and effect hooks.我正在尝试使用 state 和效果挂钩。

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. setIsKeyboardOpen 不是 function。

Am I not allow to use state hook inside effect hook?我不允许使用 state 挂钩内部效果挂钩吗?在此处输入图像描述

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;

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM