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

React Native中axios实例调用报错:undefined is not an object

问题分析与解决方案

错误原因

报错TypeError: undefined is not an object (evaluating '_.apiV4.get')说明在getUserInfos函数中,apiV4变量未被正确导入,导致调用get方法时触发异常。

可行解决方案

1. 明确导入路径

将User.js中的导入语句改为直接指向index.js文件,避免模块解析时的歧义:

// User.js
import { apiV4 } from "./index"; // 替换原有的 import { apiV4 } from ".";

React Native的Metro打包器在解析./时虽默认查找目录下的index.js,但部分场景下会出现解析异常,明确指定文件名可规避这类问题。

2. 排查循环依赖

检查是否存在循环导入情况:比如index.js是否间接导入了User.js或UserMapper.js中的内容,导致模块加载时apiV4还未完成初始化就被引用。

  • 若存在循环依赖,重构代码结构,将共用的工具/映射器移到独立文件,避免模块间互相引用。

3. 重置Metro缓存

React Native的缓存可能导致模块导出未被正确更新,运行以下命令重置缓存后重新打包:

npx react-native start --reset-cache

之后重新启动iOS/Android项目。

4. 验证axios实例创建

在index.js中添加日志,确认apiV4实例是否成功创建:

// index.js
export const apiV4 = axios.create(options);
console.log("apiV4 instance created:", apiV4); // 添加日志

启动项目后查看控制台输出,若apiV4为undefined,则检查Config.BASE_URL是否正确加载(可临时替换为固定URL测试),或axios的导入是否正常。

补充说明

你的React Native版本(0.63.4)属于较旧版本,Metro的模块解析逻辑可能和新版本有差异,优先尝试明确导入路径和重置缓存,这是此类问题最常见的解决手段。

内容的提问来源于stack exchange,提问作者Joao Victor Simonassi Farias

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 22:27:50