Вот более простая версия, которую я использую:
петании виджеты, такие какRow
/ListView
/Stack
не обращайся с нулевыми детьми Поэтому, если мы хотим условно добавить виджеты как дети, я обычно делаю следующее:
Row(
children: <Widget>[
foo == 42 ? Text("foo") : Container(),
],
);
Но это кажется странным, чтобы добавить пустой контейнер.
Другое решение - этоwhere
фильтр:
Row(
children: <Widget>[
foo == 42 ? Text("foo") : null,
].where((t) => t != null).toList(),
);
Это решает проблему пустого контейнера, но у нас все еще есть уродливый троичный, и писать его утомительно.
Есть ли лучшее решение?