Неудачное утверждение: : _network_image_io ‘url’ != null : неверно

#flutter #url #null #isnull #networkimageview

Вопрос:

Я столкнулся с этой ошибкой, и я не понимаю, почему ниже новостного контента, как на изображении, появляется это красное пространство с сообщением об ошибке… Что мне следует сделать, чтобы устранить эту проблему?

введите описание изображения здесь

введите описание изображения здесь

     class _BandiPageState extends State<BandiPage> with SingleTickerProviderStateMixin {
  CategoryPostBandi bandiPostService = CategoryPostBandi();

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Center(
        child: FutureBuilder<List>(
          future: bandiPostService.getCategoryPostBandi(),
          builder: (context, snapshot) {
            if (snapshot.hasData) {
              if (snapshot.data!.isEmpty) {
                return const Center(
                  child: Text("Nessun post disponibile"),
                );
              }
              return ListView.builder(
                itemCount: snapshot.data?.length, // it was 15
                itemBuilder: (context, i) {
                  return Card(
                    margin: const EdgeInsets.all(10),
                    elevation: 5,
                    shadowColor: Colors.black26,
                    child: InkWell(
                      child: ClipRRect(
                        borderRadius: BorderRadius.circular(5),
                        child: Container(
                          height: 110,
                          color: Colors.white,
                          child: Row(
                            children: <Widget>[
                              Container(
                                decoration: BoxDecoration(
                                  borderRadius: BorderRadius.circular(10),
                                ),
                                child: Image.network(
                                  snapshot.data![i]["_embedded"]["wp:featuredmedia"][0]["source_url"],
                                  width: 150,
                                  height: double.infinity,
                                  fit: BoxFit.cover,
                                ),
                              ),
                              const SizedBox(width: 15),
                              Expanded(
                                child: Padding(
                                  padding: const EdgeInsets.all(5),
                                  child: Column(
                                    mainAxisAlignment: MainAxisAlignment.center,
                                    crossAxisAlignment: CrossAxisAlignment.start,
                                    children: [
                                      Text(snapshot.data![i]["title"]["rendered"],
                                        overflow: TextOverflow.ellipsis,
                                        maxLines: 3,
                                        softWrap: true,
                                        textAlign:  TextAlign.left,
                                        style: const TextStyle(
                                            fontWeight: FontWeight.w600,
                                            fontFamily: "Raleway",
                                            fontSize: 14),
                                      ),
                                      const SizedBox(height:5),
                                      Text(snapshot.data![i]["content"]["rendered"]
                                          .toString()
                                          .replaceAll("<p>", "")
                                          .replaceAll("</p>", "")
                                          .replaceAll("<strong>", "")
                                          .replaceAll("</strong>", "")
                                          .replaceAll("<b>", "")
                                          .replaceAll("</b>", "")
                                          .replaceAll("<h3>", "")
                                          .replaceAll("<h2>", "")
                                          .replaceAll("<h1>", "")
                                          .replaceAll("<h4>", "")
                                          .replaceAll("<h5>", "")
                                          .replaceAll("<h6>", "")
                                          .replaceAll("<section>", "")
                                          .replaceAll("<style>", "")
                                          .replaceAll("</style>", "")
                                          .replaceAll("<a>", "")
                                          .replaceAll("</a>", "")
                                          .replaceAll("</div>", "")
                                          .replaceAll("<div>", ""),
                                        maxLines: 2,
                                        overflow: TextOverflow.ellipsis,
                                        style: const TextStyle(
                                          fontFamily: "Raleway",
                                          color: Colors.black54,
                                          fontSize: 12,
                                        ),
                                      ),
                                      // Row(
                                      //   children: [
                                      //     Icon(Icons.menu_book, color: Colors.blue[900]),
                                      //     const SizedBox(width: 10,),
                                      //     const Text("Leggi articolo", style: TextStyle(fontFamily: "Raleway",color: Colors.black, fontSize: 14),),
                                      //   ],
                                      // ),
                                    ],
                                  ),
                                ),
                              ),
                              //Icon(Icons.arrow_forward_ios, color: Colors.blue),
                            ],
                          ),
                        ),
                      ),
                      onTap: () {
                        Navigator.push(context,
                          MaterialPageRoute(builder: (context) => ArticlePage(data: snapshot.data?[i]),
                          ),
                        );
                      },
                    ),
                  );
                },
              );
            } else if (snapshot.hasError) {
              return Center(
                child: Text(snapshot.error.toString()),
              );
            } else {
              return const Center(
                child: CircularProgressIndicator(),
              );
            }
          },
        ),
      ),
    );
  }
}


 

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

1. Похоже, URL — адрес не существует в качестве пути к изображению, вместо того, чтобы просто использовать ! проверку data==null?defaultPath:path

2. Как я должен это закодировать? Не могли бы вы написать это здесь, пожалуйста?

3. это понравится snapshot.data![i]["_embedded"]["wp:featuredmedia"][0]["source_url"]==null?Text("could not found"): Image.network() . также могут быть другие ошибки в разных виджетах, я бы сказал, проверьте Card виджет верхнего уровня, а затем назначьте их.

4. Да , я получаю эту ошибку: тип аргумента «Виджет» не может быть присвоен типу параметра «Строка».

5. Можете ли вы включить ответ api ? эти ошибки означают, что вам просто нужно передать String значение ,лучше попробуйте с помощью after child child: checkUphere , а затем назначьте Image.network(

Ответ №1:

Проверьте свой API, он не предоставляет никаких данных в поле url только для этого конкретного элемента, который не отображался. Все остальные элементы отображаются соответствующим образом.