_ $ UserSerializerMixin мне это нужно? - PullRequest
0 голосов
/ 10 сентября 2018

Я боролся с сериализацией, когда нашел это руководство https://flutter.io/json/ В нем я нашел:

import 'package:json_annotation/json_annotation.dart';

part 'user.g.dart';

@JsonSerializable()
class User extends Object with _$UserSerializerMixin{
  final String name;
  final String email;

  User(this.name, this.email);

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

Я следовал руководству (также запускаю команду flutter pub pub run build_runner watch) и все хорошо, кроме _$UserSerializerMixin. Это говорит: классы могут смешиваться только с другими классами. Что мне делать?

1 Ответ

0 голосов
/ 21 сентября 2018

Ошибка в том, что класс _$UserSerializerMixin отсутствует во встроенном user.g.dart.

Пример в https://flutter.io/json/#serializing-json-using-code-generation-libraries устарел и работает только с использованием версий пакета, показанных в примере pubspec.yaml на этой странице.

Если вы используете последние пакеты, см. Пример здесь: https://pub.dartlang.org/documentation/json_serializable/latest/

Обратите внимание, что больше не нужно расширять свой класс с помощью _$UserSerializerMixin. с v1.x пакетов вместо этого создается _$UserToJson. Изменения в вашем классе теперь проще.

(Я долго боролся с собой, так как использовал последние версии пакетов в pubspec.yaml, но старый пример.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...