我在尝试在行小部件中添加 DropdownButton 时遇到错误不正确使用 parentdata 小部件。
这里我在一个行小部件中添加了两个元素,文本小部件和下拉按钮
Row(
children: <Widget>[
Expanded(flex: 1, child: Text(' Source :')),
Expanded(
flex: 4,
child: FutureBuilder<SourceData>(
future: sourceData,
builder: (context, snapshot) {
return sourceDropDownList(snapshot.data.sources);
return CircularProgressIndicator();
})
) // FutureBuilder
],
), // Row
这是返回 DropdownButton 的 DropDownList 函数
Widget sourceDropDownList(List<Sources> sources) {
var sourceNameList = List<String>();
for (var i = 0; i < sources.length; i++) {
sourceNameList.add(sources[i].name);
}
return DropdownButton<String>(
value: dropdownValue,
onChanged: (String newValue) {
setState(() {
dropdownValue = newValue;
});
},
items: sourceNameList.map((value) {
return DropdownMenuItem(
value: value,
child: Text(value),
);
}).toList(),
);
}
这是确切错误消息的屏幕截图:
[Error Message][1]
[Actual Representation of widget][2]
[1]: https://i.stack.imgur.com/w9QsX.png
[2]: https://i.stack.imgur.com/ALAOT.png
答案 0 :(得分:0)
您应该定义您的列表类型。
items: sourceNameList.map((String value) {
return new DropdownMenuItem(
value: value,
child: new Text(
value.name,
)
);
}).toList(),