【发布时间】:2020-08-02 20:30:15
【问题描述】:
我的代码中有一个 DropDown。我需要以某种方式从其他小部件访问我当前选择的项目。 如何在其他小部件中访问此项目?我可以使用 GlobalKey 或构造函数或其他任何东西吗?
我的下拉代码:
DropdownButton<String>(
items: _myList.map((String dropDownStringItem) {
return DropdownMenuItem<String>(
value: dropDownStringItem,
child: Text(dropDownStringItem),
);
}).toList(),
onChanged: (String newItemSelected) {
setState(() {
currentItemSelected = newItemSelected;
});
},
value: currentItemSelected,
),
【问题讨论】:
-
您只需将 currentItemSelected 值传递给您想要的小部件。您可以简单地使用构造函数或传递路由参数(如果您使用命名路由)。全局密钥也可以使用,但对于您可能想要传输的单个信息来说,这可能是一种过度杀伤力。但是,如果您愿意更改其他小部件中的值,则可能应该使用全局键。
-
如何在下拉菜单中使用构造函数?如果我这样做:
onChanged: (String newItemSelected) {SecondWidget(currentItemSelected);}并在 SecondWidget 或课程中设置构造函数...我得到 null 值。我怎样才能正确设置这个构造函数? -
您能否发布包含此下拉列表的类的代码,并解释一下您希望在选择新项目时发生什么?这样解释起来会更容易。
-
Here is my full code 如果我在 DropDown 中选择一个项目,它应该将该项目传递给我的 Button 小部件。当我按下按钮时,它应该将文本字段的文本设置为所选项目。或者打印那个项目......我只需要以某种方式将它传递给其他班级......
标签: android ios flutter dart flutter-layout