Я использую Flutter и пытаюсь показать ресурс изображения (question.answerImage), если он не равен нулю. Я написал код следующим образом, но он возвращает ошибку.
...
content: Column(children: [
if (question.answerImage!=null){question.answerImage},
...
Ошибка пишется так:
The element type 'Set<Widget?>' can't be assigned to the list type 'Widget'.
Как изменить тип Set<Widget?> на тип Widget?
Наилучшие пожелания,
Если есть какой-то виджет, отличный от «question.answerImage»,
вам нужно использовать «оператор распространения», чтобы разделить список на каждый виджет.
https://www.woolha.com/tutorials/dart-using-triple-dot-spread-operator-examples
[Example]
Column(children: [
...question.answerIamge,
Container(...),
Row(...),
]
)
...
content: Column(children: [
if (question.answerImage!=null)...question.answerImage,
...
Большое спасибо за ваш комментарий. Я использовал... в своем коде, но это не сработало. Тем не менее, приятно знать оператора распространения, потому что я его не знал. Благодарю вас!
Я пропустил этот пункт «Удалить фигурные скобки». Но мне интересно, можно ли «[вопрос.answerImage]» без использования оператора распространения.
Вы используете операторы if/else в литералах Collection.
Удалите фигурные скобки.
...
content: Column(children: [
if (question.answerImage!=null)question.answerImage,
...
Спасибо за ваш комментарий. Я удалил фигурные скобки, но ошибка все еще существует.
Большое спасибо, я обнаружил, что это сработало, как только я добавил! наконец-то твой код!
@tasmicsy Я изменил ответ, потому что нет причин переходить с набора на список. Вы можете сделать это, просто используя оператор «распространения».