#amazon-web-services #list #image #dart #amazon-s3
Вопрос:
Я извлекаю массив изображений из AWS в виде списка и отображаю его с помощью .map. Я не знаю, правильно ли я это делаю. У меня возникла ошибка 'package:flutter/src/painting/_network_image_io.dart': Failed assertion: line 25 pos 14: 'url != null': is not true.
, но она отлично работает, если я вручную отобразил ее так, Image.network('https://thisIsJustSampleLink.s3.us-east-2.amazonaws.com/id/sampleOnly/bb.jpg')
Вот мой код. Извлечение данных из базы данных. Babyimage [] — это ссылка на массив изображений из AWS.
List <String> _babyList = List();
Future<void> getApplicantInfo() async {
AuthService().getRequestorApplicants().then((val) async {
requestorApplicants.clear();
_babyList.clear();
for (var i = 0; i < val.data.length; i ) {
var temp = val.data[i];
setState(() {
requestorApplicants.add(new RequestorApplicantsList(
parentname: temp['parentname'],
babyname: temp['babyname'],
));
_babyList.add(temp['babyimage[]']);
});
}
});
}
Отображение списка с помощью Image.network
Container(
height: MediaQuery.of(context).size.height,
child: ListView(
shrinkWrap: true,
scrollDirection: Axis.vertical,
children: <Widget>[
Column(
children: _babyList.map((e) => Image.network(e)).toList(),
),
],
)),
Ответ №1:
в этом коде _babyList.map((e) => Image.network(e)).toList()
некоторые URL-адреса (или, возможно, все) являются нулевыми. Добавьте фильтр для удаления нулевых элементов.
_babyList.where((e) => e != null).map((e) => Image.network(e)).toList(growable:false)
если они не могут быть нулевыми, проверьте свой код, возможно, где-то есть ошибка
Комментарии:
1. Почему я получаю ошибки такого типа?
type 'List<dynamic>' is not a subtype of type 'String'
Я попытался сделать его списком<Строка>, но появляется та же ошибка. (отредактировано)2. Я не знаю почему, но вы можете преобразовать список<динамический> в список<динамический><Строка>. dynamicList.map((e) => e.toString()).ToList();
3. Отмеченный. Спасибо за помощь!