Я следовал этому уроку о сериализации во флаттере около месяца назад, и все прошло хорошо.
Однако вчера я обновил установку Flutter SDK, и мой код сломался.
import 'package:json_annotation/json_annotation.dart';
part 'evento.g.dart';
@JsonSerializable()
class Evento extends Object with _$EventoSerializerMixin {
final int id;
final String nombre;
final String discoteca;
final int precio;
final int edad;
final DateTime fecha;
final String cartel;
final bool incluyeCopa;
final bool esNominal;
final bool permitePagoTaquilla;
Evento(this.id, this.nombre, this.discoteca, this.precio, this.edad, this.fecha, this.cartel, this.incluyeCopa, this.esNominal, this.permitePagoTaquilla);
factory Evento.fromJson(Map<String, dynamic> json) => _$EventoFromJson(json);
}
После выполнения команды flutter packages pub run build_runner build
все ошибки в коде (как сказано в руководстве исчезают), но моя IDE постоянно говорит о _$EventoSerializerMixin
, [dart] Classes can only mixin other classes.
и [dart] Undefined class '_$EventoSerializerMixin'.
. Файл evento.g.dart
создан должным образом:
// GENERATED CODE - DO NOT MODIFY BY HAND
part of 'entrada.dart';
// **************************************************************************
// JsonSerializableGenerator
// **************************************************************************
Entrada _$EntradaFromJson(Map<String, dynamic> json) {
return Entrada(
json['numEntradas'] as int,
(json['nombres'] as List)?.map((e) => e as String)?.toList(),
(json['tokens'] as List)?.map((e) => e as int)?.toList(),
json['evento'] == null
? null
: Evento.fromJson(json['evento'] as Map<String, dynamic>));
}
Map<String, dynamic> _$EntradaToJson(Entrada instance) => <String, dynamic>{
'numEntradas': instance.numEntradas,
'tokens': instance.tokens,
'nombres': instance.nombres,
'evento': instance.evento
};
Как я могу это исправить?