导入外部数组后报错undefined is not an object (evaluating 'post.profile_picture')如何解决
问题原因排查与解决方案
1. 导出/导入语法错误
你当前提供的数组文件代码没有添加导出语句,其他组件无法正常引入该数组,引入后拿到的变量会是undefined,后续调用数组方法、访问内部字段都会触发报错。
- 若使用默认导出,在数组文件末尾添加:
组件中对应导入语句为:export default USERSimport USERS from './你的数组文件相对路径' - 若使用命名导出,直接修改数组定义语句为:
组件中对应导入语句为:export const USERS = [/* 原有数组内容 */]import { USERS } from './你的数组文件相对路径' - 注意填写的文件相对路径必须准确,不能写错文件夹层级、文件名后缀。
2. 变量名/字段名不匹配
- 你提供的组件代码中遍历的是
POSTS数组,但你定义的数组变量名为USERS,如果引入后没有手动赋值给POSTS变量,POSTS本身就是undefined,调用map方法会直接报错。 - 你定义的数组中存储头像的字段为
image,但报错信息显示你在访问post.profile_picture,字段名完全不匹配,哪怕数组引入成功,访问不存在的字段也会返回undefined,触发报错。你可以选择将数组中的image字段改为profile_picture,或者将访问字段的语句改为post.image。
3. 渲染时序兜底
如果存在动态引入数组、或者组件渲染优先级高于数组引入的情况,可以在遍历前加非空判断,避免首屏渲染报错:
<ScrollView> {POSTS && POSTS.map((post,index)=>( <Post post={post} key={index}/> ))} </ScrollView>
内容的提问来源于stack exchange,提问作者Zaki Kendil
相关产品推荐
相关产品推荐

