微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Flutter Freezed/json_serializable - 生成的 json 中缺少 runtimeType

如何解决Flutter Freezed/json_serializable - 生成的 json 中缺少 runtimeType

出于某种原因,此 Freezed 类生成的 json 中缺少 runtimeType。它只是偶尔发生。见下图:

enter image description here

这会导致图像中的 switch case 变为 throw FallThroughError();,因为 runtimeType 不存在。

这是课程:

import 'package:freezed_annotation/freezed_annotation.dart';
import 'package:vepo/src/application/entities/option/option.dart';
import '../vegan_item.dart';

part 'basic_vegan_item.freezed.dart';
part 'basic_vegan_item.g.dart';

@freezed
class BasicVeganItem extends VeganItem with _$BasicVeganItem {
  const factory BasicVeganItem(
      {int? id,String? name,String? companyName,String? imageBucketName,String? description,String? image,List<Option>? tags,@Default(0) int isNotVeganCount,@Default(0) int isveganCount,int? rating,@Default(0) int ratingsCount,@Default(1) int currentRevisionId}) = _BasicVeganItem;

  const factory BasicVeganItem.groceryItem(
      {int? id,@Default('vp-grocery-items') String? imageBucketName,@Default(1) int currentRevisionId}) = GroceryItem;

  const factory BasicVeganItem.menuItem(
      {int? id,@Default('vp-menu-items') String? imageBucketName,@Default(1) int currentRevisionId}) = MenuItem;

  const BasicVeganItem._();

  factory BasicVeganItem.fromJson(Map<String,dynamic> json) =>
      _$BasicVeganItemFromJson(json);
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。