#flutter
Вопрос:
Проблема в том, что когда я выбираю элемент, выбранное состояние не меняется .У меня здесь есть этот код,что я делаю не так
class _DemoState extends State<Demo> {
String _selected = "Ankara";
@override
Widget build(BuildContext context) {
return Center(
child: PopupMenuButton(
itemBuilder: (BuildContext ctx) {
return <PopupMenuEntry<String>>[
PopupMenuItem(
child: Text("Ankara"),
value: "Ankara",
),
PopupMenuItem(
child: Text("İzmir"),
value: "İzmir",
),
];
},
onSelected: (String city) {
setState(() {
_selected = city;
});
},
),
);
}
}
Комментарии:
1. Это действительно меняет состояние. Попробуйте распечатать
_selected
.
Ответ №1:
Вам нужно добавить initialValue
во всплывающее окно, чтобы указать, что что-то было выбрано. Также ваше начальное значение должно быть равно выбранному значению
class _DemoState extends State<Demo> {
String _selected = "Ankara";
@override
Widget build(BuildContext context) {
return Center(
child: PopupMenuButton(
initialValue: _selected, // add your initial value here
itemBuilder: (BuildContext ctx) {
return <PopupMenuEntry<String>>[
PopupMenuItem(
child: Text("Ankara"),
value: "Ankara",
),
PopupMenuItem(
child: Text("İzmir"),
value: "İzmir",
),
];
},
onSelected: (String city) {
setState(() {
_selected = city;
});
},
),
);
}
}