Как этот список интегрирован в элементы Dropdownbutton с помощью карты? Может кто-нибудь объяснить? - PullRequest
0 голосов
/ 23 марта 2020

Это определяется в состоянии класса:

static var _priorities = ["High", "Low"]; сильный текст

Это внутри виджета сборки:

ListTile( title: DropdownButton( items: _priorities.map((String dropDownStringItem) { return DropdownMenuItem<String>( value: dropDownStringItem, child: Text(dropDownStringItem), ); }).toList(), onChanged: null), )

1 Ответ

0 голосов
/ 23 марта 2020

Из документации Dart on List.map:

Возвращает новую ленивую Iterable с элементами, которые создаются путем вызова f для каждого элемента этой Iterable в порядке итерации.

То есть map возвращает Iterable, который содержит каждый преобразованный элемент из исходного List. Способ преобразования элементов в списке зависит от замыкания, передаваемого методу map. В вашем случае:

  1. Вы берете каждый String из списка _priorities: «Высокий» и «Низкий».
  2. Вы строите DropDownMenuItem<String> для каждого из их, передав DropDownMenuItem Function(String) методу map. Закрытие, которое вы передаете map, - это функция, которая принимает String и возвращает DropDownMenuItem
  3. Затем вы вызываете toList(), чтобы преобразовать Iterable, возвращаемый map, в List.

Таким образом, вы преобразовали List<String> в List<DropDownMenuItem>, взяв каждый String в исходном списке и построив DropDownMenuItem для каждой строки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...