简体   繁体   English

React useEffect 缺少依赖

[英]React useEffect Missing Dependency

React showing missing dependancy, but everything seems ok. React 显示缺少依赖关系,但一切似乎都很好。 I dont want declare function inside useeffect, can you help with that?我不想在useeffect里面声明function,你能帮忙吗?

Even if I declare all function codes inside usEffect, it tells then user token also missing dependancy.即使我在 usEffect 中声明了所有 function 代码,它也会告诉用户令牌也缺少依赖关系。 I dont understand what wants react here.. there is no examples in documentation.我不明白要在这里做出什么反应..文档中没有示例。

const Profile = () => {

    const [user, dispatch] = useContext(UserContext)
    const [login, setLogin] = useState('waiting')
    let [selected, setSelected] = useState('video')
    let [section, setSection] = useState()
    const [userdata,setUserData] = useState()

    useEffect(() => {
        checkCurrentUser()
    }, [])

    let checkCurrentUser = async () => {
        console.log(user.token)
        let result = await requestCurrentUser(user.token)
        if (result.status) {
            await dispatch({
                type: "USER",
                payload: result.data
            })
            setUserData(result.data)
            setLogin('success')
        } else {
            setLogin('failed')
        }
    }

    if (login === 'waiting') {
        return (
            <PianoPlay width={300} classAdd="loading" />
        )
    }
    else if (login === 'failed') {
        return (
            <Redirect push to="/" />

        )
    }

    else if (!userdata.hasOwnProperty('id')) {
        return (
           <Redirect push to="/home" />
        )
    }

You can solve this in two ways.您可以通过两种方式解决此问题。

1 - useEffect(checkCurrentUser, []) 1 - useEffect(checkCurrentUser, [])

2- 2-

const checkCurrentUser = useCallback(() => {
      ...
    }, [])
    useEffect(() => {
      checkCurrentUser()
    }, [checkCurrentUser])

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

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