我想让RawChip返回Map,即我想显示标签,但是当您单击/点击它时,将处理的真实值。我们可以做到吗?
通常是这样的标准RawChip(并且可以正常工作)
final List<Widget> bannerChips = bannerBloc.bannerFilter.map<Widget>((String _text) {
return
Padding(
padding: const EdgeInsets.all(10.0),
child: RawChip(
label: Text(_text),
selected: bannerBloc.selectedBanner == _text,
onSelected: (bool isSelected) {
setState(() {
bannerBloc.selectedBanner = isSelected ? _text : '';
});
},
));
}).toList();
现在我想返回Map这样的东西
final List<Widget> bannerChips = bannerBloc.bannerFilter.map<Widget>((Map<String,dynamic> _map) {
return
Padding(
padding: const EdgeInsets.all(10.0),
child: RawChip(
showCheckmark: false,
label: Text(_map['label']),
selected: bannerBloc.selectedBanner == _map['label'],
onSelected: (bool isSelected) {
setState(() {
bannerBloc.selectedBanner = isSelected ? _map['label'] : '';
});
},
));
}).toList();
但是我无法使其工作。我收到此错误消息
类型'String'不是'_map'类型'Map'的子类型
我该怎么办?
在我希望将其作为地图时,bannerFilter会看起来像这样
List<Map<String, dynamic>> bannerFilter = [
{ 'label': 'All', 'value': 0 },
{ 'label': 'Shipped', 'value': 1 }
];
答案 0 :(得分:1)
错误消息表明bannerBloc.bannerFilter
不是
List<Map<String, dynamic>> bannerFilter = [
{ 'label': 'All', 'value': 0 },
{ 'label': 'Shipped', 'value': 1 }
];
如您所愿。