You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React中useEffect完全不触发问题求助

问题原因及解决办法

核心问题1:错误的useEffect用法

你代码里把useEffect当成变量进行赋值操作了:

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

这完全不符合React钩子的调用规范,useEffect是React提供的钩子函数,必须通过调用的方式使用,而不是重新赋值。

核心问题2:函数声明顺序导致的引用问题

onPageLoad是用const声明的函数,不存在变量提升,在你原本的代码里,useEffect的回调尝试调用它时,这个函数还未被定义,即使修正了第一个问题,也会触发引用错误。

修正后的代码

import React, { useEffect } from 'react'

function Home(props) {    
    // 先声明函数,确保useEffect回调能访问到
    const onPageLoad = () => {
        console.log('hello from page load')
    }    

    // 正确调用useEffect钩子
    useEffect(() => {
        onPageLoad()
    }, [])

    return (        
        <p>Home Component</p>       
    )
}

export default Home

额外说明

  • React钩子必须遵循调用规则:只能在函数组件的顶层调用,不能嵌套在条件、循环或其他函数内部。
  • 依赖数组[]表示该effect仅在组件挂载时执行一次,符合你的需求。

内容的提问来源于stack exchange,提问作者buzz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 22:17:00