【发布时间】:2019-06-01 12:21:30
【问题描述】:
我遇到过这个问题;我在颤振中创建了一个DropDownButton (StateFulWidget),并且我可以访问我创建的项目的来源,即List。
通过map() 函数,我得到了这些项目并将它们注入DropdownMenuItem,一切正常。但是我想将项目的来源作为参数传递给我将在runapp() 方法中创建的对象的构造函数,但这不起作用。
弹出的原因之一是:
- Widgets Library捕获的异常══════════════════ I/颤振 (7852):在构建 myMenu(脏, 状态:mymenu#39f55):I/flutter(7852):类型“列表”不是子类型 'List>' 类型的 I/flutter (7852):要么断言表明 框架本身的错误,或者我们应该提供大量 I/flutter (7852):此错误消息中的更多信息可帮助您 确定并解决根本原因。
如何解决这个问题?
这是我的代码:
class myMenu extends StatefulWidget {
State<StatefulWidget> createState() {
return mymenu(inputData);
}
var inputData;
myMenu(input) {
this.inputData = input;
}
}
class mymenu extends State<myMenu> {
var incomingData;
var nameees;
mymenu(input) {
this.incomingData = input;
this.nameees = incomingData[0];
}
Widget build(BuildContext context) {
return DropdownButton<String>(
items: incomingData.map((String name) {
return DropdownMenuItem<String>(
value: name,
child: Text(name),
);
}).toList(),
onChanged: (itemSelectedByUser) {
setState(() {
nameees = itemSelectedByUser;
});
},
value: nameees,
);
}
}
var names = [
"Java",
"kotlin",
"dart",
"Flutter"
"ruby",
"ruby on Rails",
"python",
"django",
"javascript",
"nodejs",
"express.js",
"vue.js",
"react.js"
"Facebook",
"YouTube",
"Twitter",
"Safari",
"google"
];
var os = ["Windows", "Linux", "MAc", "iOS", "Android"];
var co = ["Samsung", "Apple", "Sony", "Nikon"];
var selectedItem = "Karrar";
【问题讨论】:
标签: flutter