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

React Native报错TypeError: undefined is not an object (evaluating 'date.getFullYear')

解决 TypeError: undefined is not an object (evaluating 'date.getFullYear') 错误

这个错误的核心原因是调用 getFormattedDate 函数时传入的 date 参数为 undefined,导致无法调用 getFullYear() 方法,错误栈显示问题出在 ExpenseItem 组件中调用该函数的位置。

具体解决方法

1. 给 getFormattedDate 函数添加参数校验

修改 date.js 中的函数,先判断传入的 date 是否为有效日期对象,避免直接调用方法导致崩溃:

export function getFormattedDate(date){
    if (!date || !(date instanceof Date)) {
        return "未知日期"; // 也可根据需求返回空字符串 ""
    }
    return `${date.getFullYear()}-${date.getMonth()+1}-${date.getDate()}`;
}

2. 确保 ExpenseItem 的 date 属性始终有效

检查渲染 ExpenseItem 的数据源(通常是 FlatList 绑定的 expense 列表),确保每一条数据都包含有效的 date 字段:

  • 如果数据来自 API,确认返回的日期字段已被正确转换为 Date 对象;
  • 如果是本地生成的数据,初始化时给每条 expense 设置默认日期(比如当前日期)。

3. 在 ExpenseItem 组件中添加 fallback 处理

在调用 getFormattedDate 前先判断 date 是否存在,或者设置默认值:

// ExpenseItem 组件中修改日期渲染部分
<Text style={styles.textBase}>
  {date ? getFormattedDate(date) : "未知日期"}
</Text>

或者直接给默认日期:

<Text style={styles.textBase}>
  {getFormattedDate(date || new Date())}
</Text>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 22:35:12