我有下拉按钮和项目的动态列表,这是完美的工作。我可以显示所有的列表项目,但当我选择某人我的值不会改变在屏幕上。只是条目。第一次写入不会更改为所选择的。当我在终端上检查时,我可以看到所选的项目,所以set state方法有效,但initialvalue没有改变。
my下拉按钮
String dropdownvalue = entry.first;
var items =entry;
DropdownButton(
// Initial Value
value: dropdownvalue,
// Down Arrow Icon
icon: const Icon(Icons.keyboard_arrow_down),
// Array list of items
items: items.map((dynamic items) {
return DropdownMenuItem(
value: items,
child: Text(items),
);
}).toList(),
// After selecting the desired option,it will
// change button value to selected value
onChanged: (dynamic newvalue) {
setState(() {
dropdownvalue = newvalue; > **this not working**
print(dropdownvalue); > **it gives the newvalue**
});
},
),
看来你的问题与你如何声明dropdownvalue和items列表的方式有关。
请检查这个飞镖。在这里,我使用您的代码,并对items列表和dropdownvalue的声明进行了一些修改。
https://dartpad.dev/?id=33ef41ea7fa95613fe1a498e4dac4bcc
您必须使用stateFul小部件并将变量(如: dropdownvalue
)放在全局变量中这意味着在
class _MyAppState extends State<MyApp> {
...
}
我遇到了同样的问题,并像那样解决了它。