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

Flutter中Jiffy构造函数找不到错误的代码修复求助

解决Jiffy构造函数找不到的错误

你碰到的这个错误是因为Jiffy 3.0+版本废弃了直接通过Jiffy(日期参数)的构造方式,改用静态方法来初始化实例。直接修改代码就能解决:

修改关键代码行

把原来的:

timeAgo: Jiffy(json['date']).add(hours: 6).fromNow(),

替换成:

timeAgo: Jiffy.parse(json['date']).add(hours: 6).fromNow(),

如果需要更严谨地处理日期格式(比如担心json['date']格式异常),也可以先转换成DateTime对象再传入:

timeAgo: Jiffy.fromDateTime(DateTime.parse(json['date'])).add(hours: 6).fromNow(),

完整修改后的Article.fromJson方法

factory Article.fromJson(Map<String, dynamic> json){
  return Article(
    id: json['id'] ?? 0,
    title: json['title']['rendered'] ?? '',
    content: json['content']['rendered'] ?? '',
    image: json['custom']["featured_image"] != false
      ? json['custom']["featured_image"]
      : WpConfig.randomPostFeatureImage,
    video: json['custom']['td_video'] ?? '',
    author: json['custom']['author']['name'] ?? '',
    avatar: json['custom']['author']['avatar'] ?? 'https://icon-library.com/images/avatar-icon/avatar-icon-27.jpg',
    date: DateFormat('dd MMMM, yyyy', 'en_US')
      .format(DateTime.parse(json["date"]))
      .toString(),
    timeAgo: Jiffy.parse(json['date']).add(hours: 6).fromNow(),
    link: json['link'] ?? 'empty',
    category: json["custom"]["categories"][0]["name"] ?? '',
    catId: json["custom"]["categories"][0]["cat_ID"] ?? 0,
    tags: json['tags']
  );
}

额外说明

如果你的项目里Jiffy版本还停留在2.x及以下,直接用Jiffy(json['date'])是可行的,但建议升级到最新版本,使用官方推荐的parse或fromDateTime静态方法,避免后续版本迭代带来的兼容性问题。

内容的提问来源于stack exchange,提问作者Tijani El Mernissi

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 05:43:11