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

React Native中useFocusEffect报错:TypeError: (0, _react.useFocusEffect) is not a function

解决useFocusEffect报错:TypeError: (0, _react.useFocusEffect) is not a function
  • 核心问题:useFocusEffect 不属于React核心API,是React Navigation提供的导航专用钩子,你从react包导入自然会找不到。

  • 正确解决步骤:

    1. 确保项目已安装@react-navigation/native(RN6+版本必备基础包)
    2. 修正导入路径,从@react-navigation/native导入useFocusEffect
    3. 确保组件被NavigationContainer包裹(只有在导航上下文内才能使用该钩子)
  • 修正后的代码示例:

// 正确导入
import React from "react";
import { useFocusEffect } from "@react-navigation/native";

// 组件内使用
useFocusEffect(
  React.useCallback(() => {
    console.log('页面获取焦点了');
    // 可选:页面失去焦点时执行清理逻辑
    return () => {
      console.log('页面失去焦点');
    };
  }, []) // 依赖数组按需添加
);
  • 补充说明:
    • RN6+版本确实支持useFocusEffect,但必须从React Navigation的包导入,而非React核心包
    • 使用时建议配合React.useCallback包裹回调函数,避免不必要的重渲染

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 00:45:54