Идея не в том, чтобы превратить List<DropdownMenuItem>
в StatelessWidget
, а в том, чтобы создать виджет без состояния для элемента списка
. Это вопрос изменения
DropdownButton<String>(
value: selectedCurrency,
items: [
for (String currency in currenciesList)
DropdownMenuItem(
child: Text(currency),
value: currency,
),
],
onChanged: (value) {
setState(() {
selectedCurrency = value;
});
},
),
в :
DropdownButton<String>(
value: selectedCurrency,
items: [
for (String currency in currenciesList)
MyStatelessWidget(currency: currency),
],
onChanged: (value) {
setState(() {
selectedCurrency = value;
});
},
),
...
class MyStatelessWidget extends StatelessWidget {
const MyStatelessWidget({Key key, this.currency}) : super(key: key);
final String currency;
@override
Widget build(BuildContext context) {
return DropdownMenuItem(
value: currency,
child: Text(currency),
);
}
}