Список пользователей не отрисовывается, если сервер не прислал одно из полей
Модель ответа во Flutter-приложении:
class User {
final String name;
final String phone;
User.fromJson(Map<String, dynamic> json)
: name = json['name'] as String,
phone = json['phone'] as String;
}
Для пользователей, которые не подтвердили телефон, сервер поле phone не присылает вовсе. Экран со списком у таких аккаунтов показывает ошибку и пустоту вместо данных.
Что происходит?
- Приведение отсутствующего значения к String выбрасывает исключение, парсинг всего ответа обрывается — поле должно быть nullable и обрабатываться явно
- phone получит пустую строку, а пустой экран вызван другой причиной
- Упадёт только тот виджет, который показывает телефон: остальные элементы списка отрисуются нормально, а на месте телефона будет блок с ошибкой
- Ошибка проявляется только в release-сборке: в debug приведение null к String разрешено
