проверьте, не приводит ли null к ошибкам — не может быть получен безусловный доступ, потому что получатель может быть «нулевым»

#flutter

Вопрос:

Я хочу проверить , Icon не возвращает ли значение null, и если оно возвращает значение null, то покажите SvgPic , или еще покажите Icon .

Ошибки:

  1. Слишком много позиционных аргументов,
  2. Свойство «значок» не может быть доступно безоговорочно, потому что получатель может быть «нулевым». Попробуйте сделать доступ условным (используя»?.») или добавить нулевую проверку к цели («!»).

.

 final SvgPicture? svgPic; final Icon? icon;
child: Container(widget.icon == null
                                ? widget.svgPic
                                : Icon(widget.icon.icon,
                                    color: widget.iconColour)),
                          ),
 

Ответ №1:

  • Слишком много позиционных аргументов

Вы не добавили в этот контейнер никакой метки параметров

  • Свойство «значок» не может быть доступно безоговорочно, потому что получатель может быть «нулевым». Попробуйте сделать доступ условным (используя ‘?.’) или добавить нулевую проверку к цели (‘!’)

Вы пытаетесь получить доступ к свойству значка nullable, поэтому вам нужно использовать ? или !.

Вместо:

 Container(widget.icon == null ? widget.svgPic
   : Icon(widget.icon.icon, color: widget.iconColour),
),
 

Воспользуйся:

 Container(child: widget.icon == null ? widget.svgPic
   : Icon(widget.icon!.icon, color: widget.iconColour)
),
 

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

1. большое спасибо за объяснение и решение, оно работает.