返回Map的RawChip

时间:2019-02-08 07:20:13

标签: dart flutter

我想让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 }
  ];

1 个答案:

答案 0 :(得分:1)

错误消息表明bannerBloc.bannerFilter不是

  List<Map<String, dynamic>> bannerFilter = [
    { 'label': 'All', 'value': 0 },
    { 'label': 'Shipped', 'value': 1 }
  ];

如您所愿。