Как проверить нулевое значение виджета в тернарном операторе dart для отображения изображения по умолчанию, если оно равно нулю? - PullRequest
1 голос
/ 26 мая 2020

Здравствуйте, мне нужна помощь с моим кодом флаттера. Я загружаю свои данные из json и передаю данные с одного экрана на другой. Я хочу использовать тернарный оператор для проверки нулевого значения, но продолжаю получать ошибки.

Я хочу загрузить изображение по умолчанию, если нет данных, я получаю сообщение об ошибке - невыполненное выражение: логическое выражение не должно быть нулевым.

Ниже приведен фрагмент моего кода внутри виджета с отслеживанием состояния. изображение содержит данные для изображения

class DetailScreen extends StatefulWidget {

  //load json data to each section, using index provided from list page.

  final herbName;
  final index;
  final image;
  final text;
  DetailScreen({this.herbName,this.index,this.image,this.text});

  @override
  _DetailScreenState createState() => _DetailScreenState();
}

// код ниже расположен внутри государства

BoxDecoration(
              borderRadius: BorderRadius.all(Radius.circular(30.0)),
              color: Colors.redAccent,
              image: DecorationImage(
                fit: BoxFit.cover,
                image: **widget.image ? NetworkImage("http://images.neopets.com/altador/altadorcup/signup_full.gif")
                    :

                NetworkImage(widget.image),**

              )),

1 Ответ

0 голосов
/ 27 мая 2020

Вы можете попробовать эти
1. image: NetworkImage(widget.image ?? "http://images.neopets.com/altador/altadorcup/signup_full.gif")

2. image: widget.image == null ? NetworkImage("http://images.neopets.com/altador/altadorcup/signup_full.gif") : NetworkImage(widget.image);

Вы получаете эту ошибку, потому что widget.image - это строка (и вы не сравнивали ее ни с чем). Тернарная операция работает с логическим значением

...