Сериализуемый объект поврежден после обновления SDK - PullRequest
0 голосов
/ 30 августа 2018

Я следовал этому уроку о сериализации во флаттере около месяца назад, и все прошло хорошо. Однако вчера я обновил установку 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
    };

Как я могу это исправить?

...