Акведук и Дартс: будущее (T = ManagedObject) не может быть сериализован до JSON - PullRequest
0 голосов
/ 30 января 2020

Я следовал учебному пособию здесь , чтобы ознакомиться с Акведуком и Дартсом. Код из первой части работал нормально, но как только я преобразовал список героев в памяти в базу данных, он перестал работать. Я подтвердил, что в базе данных есть данные (Postgres), и серверная часть успешно подключалась и считывала данные из БД. Тем не менее произошла ошибка, что ManagedObject не может быть сериализован. Ничто в этом руководстве не упоминает никаких подробностей о сериализации. Я попытался добавить @JsonSerializable в свой модельный класс, но проблема все еще была. Кажется, что это не сам объект модели, а тот факт, что API возвращает: Future<List<Hero>>? Ошибка:

Converting object to an encodable object failed: Instance of 'Future<List<Hero>>' #0      _JsonStringifier.writeObject (dart:convert/json.dart:649:7)

Похоже, что в руководстве предлагается, чтобы классы, расширяющие ManagedObject, были сериализуемыми по умолчанию / автоматически. Это предположение неверно? Кажется странным, что на веб-сайте Акведука есть учебник, который сломан прямо из коробки.

1 Ответ

0 голосов
/ 31 января 2020

Я пропустил ключевое слово await в запросе к базе данных, которое объясняет, почему вызов API возвращал Future> вместо фактического List. Doh!

...