【问题标题】:Error while using filter in flutter for Listview在 Flutter 中为 Listview 使用过滤器时出错
【发布时间】:2020-12-31 22:17:20
【问题描述】:

我正在尝试使用有状态小部件接收的元素 data_code 过滤列表,但我收到如下描述的错误

代码

 List list4=   list2.where(widget.bomdatareceived[0]['data_items'][0]['data_code'].contains(widget.data_code));

错误

type 'bool' is not a subtype of type '(dynamic) => bool'

JSON 数据

"data_items": [
                                {
                 
                                    "data_code": "61",
                                    "data_name": "dat1",
                                    "data_item": "327",
                                },
                                {
                 
                                    "data_code": "61",
                                    "data_name": "dat4",
                                    "data_item": "390",

                                },
                                {
                 
                                    "data_code": "65",
                                    "data_name": "dat3",
                                    "data_item": "1056",
                                }
                            ]

上面的 JSON 数据在列表中,我想在这个 ListView.builder 中实现一个过滤器类型的东西,只列出那些具有相同 data_code 的元素,我没有实现任何搜索栏类型的东西屏幕。我从上一个屏幕收到data_code 的值,并希望构建具有相同data_code 的列表。

请指导我如何解决此问题。我是学习flutter的新手

【问题讨论】:

标签: json flutter dart filter flutter-listview


【解决方案1】:

where 方法中,您需要使用返回 bool 的函数,其参数是列表的每个元素。所以在你的情况下,它应该类似于:

 var list4 = list2.where((item) => item.contains(widget.data_code));

我不知道list2 的样子,所以它是示例条件。

【讨论】:

  • 嗨,我试过你的答案,但它给了我这个错误type 'WhereIterable<dynamic>' is not a subtype of type 'List<dynamic>',我需要提供更多细节吗?
  • 最后是toList()
猜你喜欢
  • 2013-06-29
  • 1970-01-01
  • 2018-11-07
  • 2017-12-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-11-25
相关资源
最近更新 更多