Значение изображения JSON в виджете NetworkImage

#flutter #dart

Вопрос:

в этом коде я не могу увидеть статью?.Значение ImageUrl в сетевом изображении. Я получаю эту ошибку:

Тип аргумента ‘String?’ не может быть присвоен типу параметра ‘String’

какая-нибудь помощь?

в списке в виде текста я могу видеть значение (ссылку) изображения, но в сетевом изображении не могу.

 Widget build(context) {
    return Scaffold(
      backgroundColor: const Color(0xffeeeeee),
      appBar: AppBar(
        title: const Text(
          'List User Example',
        ),
      ),
      body: Container(
        padding: const EdgeInsets.all(
          10.0,
        ),
        child: FutureBuilder<Article>(
          future: _futureArticle,
          builder: (BuildContext context, AsyncSnapshot<Article> snapshot) {
            if (snapshot.hasData) {
              final article = snapshot.data?.data;
              return Container(
                height: 500.0,
                width: 500.0,
                decoration: BoxDecoration(
                  image: DecorationImage(
                      image: NetworkImage(article?.imageUrl), fit: BoxFit.cover),
                  shape: BoxShape.circle,
                ),
                child: Card(
                  elevation: 4.0,
                  shape: RoundedRectangleBorder(
                    borderRadius: BorderRadius.circular(10.0),
                  ),
                  child: ListTile(
                    title: Text(
                      'Title: ${article?.title}',
                    ),
                    subtitle: Text(
                      'Content: ${article?.imageUrl}',
                    ),
                  ),
                ),
              );
            } else if (snapshot.hasError) {
              return Text(
                '${snapshot.error}',
              );
            } else {
              return const Center(
                child: CircularProgressIndicator(),
              );
            }
          },
        ),
      ),
    );
  }
}

 

Комментарии:

1. Ошибка заключается в том, что в режиме nullsafety NetworkImage() не может принимать аргумент null и article?.imageUrl может принимать значение null. Вы могли бы сделать что-то вроде NetworkImage(article == null ? 'https:/my.com/default.png' : article!.imageUrl)

2. все та же проблема

3. Извините — тоже поставил ! после ImageUrl: NetworkImage(article == null ? 'https:/my.com/default.png' : article!.imageUrl!) FWIW Я думаю, что то, что я предлагаю здесь с операторами bang, как-то не одобряется, так как без проверок вверх по течению у вас все равно могут быть ошибки с нулевыми значениями, которые уничтожают всю функцию нулевой безопасности. Идея безопасности null заключается в том, что где-то значение должно быть проверено на нуль перед его использованием, и если функция не принимает тип, допускающий значение null (т. Е. с a ? суффикс типа » Строка?»), то он не проверяет и ожидает, что вызывающий абонент проверил наличие нулевых значений.

4. спасибо, теперь работает.