我遇到了这个问题;我已经创建了DropDownButton
的{{1}},并且可以访问自己创建的项目的来源,即StateFulWidget
。
通过List
函数,我得到了项目并将它们注入到map()
中,一切正常。但是我想将项目的源作为参数传递给我将在DropdownMenuItem
方法中创建的对象的构造函数,但这没有用。
弹出的原因之一是:
小计图书馆对意外的╞═════════════════════════════════════════ ══════════════════我/扑 (7852):构建myMenu(dirty, 状态:mymenu#39f55):I / flutter(7852):类型“列表”不是子类型 'List>'I / flutter(7852)类型的:断言指示一个 框架本身的错误,否则我们应该提供实质性的 I / flutter(7852):此错误消息中的更多信息可为您提供帮助 确定并解决根本原因。
如何解决此问题?
这是我的代码:
runapp()
答案 0 :(得分:0)
您可以使用StatefulWidget
从widget
访问变量,如下例所示
class myMenu extends StatefulWidget {
final inputData;
myMenu(
{Key key,
@required this.inputData,
})
: super(key: key);
State<StatefulWidget> createState() => mymenu();
}
class mymenu extends State<myMenu> {
var nameees;
Widget build(BuildContext context) {
return DropdownButton<String>(
items: widget.inputData.map((String name) {
return DropdownMenuItem<String>(
value: name,
child: Text(name),
);
}).toList(),
onChanged: (itemSelectedByUser) {
setState(() {
nameees = itemSelectedByUser;
});
},
value: nameees,
);
}
}