我的应用程序运行正常,但是在 pub upgrade --major-versions 之后,我在所有模型上都遇到了问题。示例模型:
import 'package:app_220/models/Leads/LeadFieldModel.dart';
import 'package:flutter/foundation.dart';
import 'package:freezed_annotation/freezed_annotation.dart';
import 'package:intl/intl.dart';
part 'LeadModel.freezed.dart';
part 'LeadModel.g.dart';
@freezed
abstract class LeadModel with _$LeadModel {
const LeadModel._();
@JsonSerializable(fieldRename: FieldRename.snake)
const factory LeadModel({
required int id,
int? formId,
@JsonKey(name: 'contact__first_name', defaultValue: '')
@Default('')
String contactFirstName,
@JsonKey(name: 'contact__last_name', defaultValue: '')
@Default('')
String contactLastName,
@JsonKey(name: 'contact__email', defaultValue: '')
@Default('')
String contactEmail,
@JsonKey(name: 'contact__phone', defaultValue: '')
@Default('')
String contactPhone,
int? staffId,
@Default('') String staffLastName,
DateTime? creationTime,
@Default('') String sourceUrl,
@Default('') String sourceIp,
@Default(0) int viewed,
List<LeadFieldModel>? leadData,
}) = _LeadModel;
factory LeadModel.fromJson(Map<String, dynamic> json) =>
_$LeadModelFromJson(json);
}
问题:
The annotation 'JsonSerializable' can only be used on classes
The annotation 'JsonKey' can only be used on fields or getters
...
为了让它能在几周前的上一次升级中工作,我在pubspec.yaml中为json_annotation: '4.0.1' 和json_serializable: '4.1.4' 设置了一个固定版本,但我想知道是否还有其他方法更新这些软件包没有任何问题。
我错过了什么,我怎样才能达到与使用冻结之前相同的效果?