问题描述
出于某种原因,此 Freezed 类生成的 json 中缺少 runtimeType
。它只是偶尔发生。见下图:
这会导致图像中的 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 (将#修改为@)