Как добавить элементы в столбец, если во флаттере есть условие? - PullRequest
0 голосов
/ 03 августа 2020

У меня есть этот код:

Column(
        children: [
            MyFirstWidget(),
            MySecondWidget(),
        ],
);

Теперь я хочу добавить несколько виджетов в этот столбец, если есть условие. Вот пример:

Column(
        children: [
            MyFirstWidget(),
            MySecondWidget(),
            if(condition == true) {
               MyThirdWidget(),
               MyFourthWidget(),
            }
        ],
);

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

1 Ответ

2 голосов
/ 03 августа 2020

В Dart 2.3 они добавили коллекцию if и операторы распространения, которые вы можете использовать здесь для условного добавления этих виджетов.

Коллекция if условно добавляет список третьего и четвертого виджетов и Оператор распространения кратко вставляет эти элементы в коллекцию.

Column(
  children: [
    MyFirstWidget(),
    MySecondWidget(),
    if(condition == true)
      ...[MyThirdWidget(), MyFourthWidget()]
  ],
);

Дополнительно выполнение == true не требуется. Вы можете просто набрать if(condition) для более чистого кода:

Column(
  children: [
    MyFirstWidget(),
    MySecondWidget(),
    if(condition)
      ...[MyThirdWidget(), MyFourthWidget()]
  ],
);

Они оба будут отображать только третий и четвертый виджеты, когда условие равно true.

...