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

调用API获取DateTime遇Expected an Identifier错误求助

问题解决:Expected an Identifier 错误分析与修复

错误原因

你的代码中DateTime.fromMillisecondsSinceEpoch(snapshot.data?.dt??)存在语法问题:Dart的空合并运算符??要求右侧必须提供一个非空的 fallback 值,而你只写了??没有后续内容,导致编译器抛出"Expected an Identifier"错误。

修复方案

方案1:补充默认毫秒值

给??右侧添加一个默认的毫秒数(比如0,对应1970-01-01 UTC),确保表达式完整:

Text('${Util.getFormattedDate(DateTime.fromMillisecondsSinceEpoch(snapshot.data?.dt ?? 0))}')

方案2:处理空值场景(更友好)

如果希望在snapshot.data?.dt为空时显示占位文本(比如"无数据"),可以先判断空值再调用方法:

Text(
  snapshot.data?.dt != null 
      ? Util.getFormattedDate(DateTime.fromMillisecondsSinceEpoch(snapshot.data!.dt))
      : "无日期数据"
)

可选优化:让Util方法支持空值

如果需要更通用的工具方法,可以修改Util类,让它支持接收可空的DateTime,避免外部重复判断:

class Util{
  static String getFormattedDate(DateTime? dateTime){
    if(dateTime == null) return "无日期数据";
    return DateFormat("EEE, MMM d, y").format(dateTime);
  }
}

调用时就可以简化为:

Text('${Util.getFormattedDate(snapshot.data?.dt != null ? DateTime.fromMillisecondsSinceEpoch(snapshot.data!.dt) : null)}')

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 18:57:08