gpt4 book ai didi

flutter - 在 flutter 列表中实现 Dismissible 时出错

转载 作者:行者123 更新时间:2023-12-03 02:52:03 24 4
gpt4 key购买 nike

我正在尝试实现 Dismissible在 flutter 中从列表中滑动并删除项目,但我在执行相同的操作时遇到以下错误

type '_InternalLinkedHashMap<String, dynamic>' is not a subtype oftype 'String'


在这行代码 key: Key(item)我该如何解决?
            ListView.separated(
separatorBuilder: (context, index){
return Divider();
},
controller: _scrollController,
itemCount: noteItems,
shrinkWrap: true,
itemBuilder: (context, index) {

final item = firstdata[index];
return
Dismissible(
direction: DismissDirection.endToStart,
key: Key(item),
onDismissed: (direction) {
setState(() {
firstdata.removeAt(index);
});
Scaffold.of(context)
.showSnackBar(SnackBar(content: Text("$item dismissed")));
},
background: Container(color: Colors.red)
,

child: Padding(

padding: const EdgeInsets.fromLTRB(8.0, 7.0, 8.0, 0.0),
child: Column(
children: <Widget>[

ListTile(

leading:ClipRRect(
borderRadius: BorderRadius.circular(10),
child: Image.asset('images/appstore.png', width: 50, height: 50)
) ,

title:
Row(children: [
Flexible(
child: firstdata[index]['id']!= null?AutoSizeText(
firstdata[index]['id'],
maxLines: 2,


style: TextStyle(fontWeight: FontWeight.bold),) :Text(''),
),

],),



),







],
),
),
);

},

),
ListView 的 JSON 数据结构如下
  {
"error": "false",
"notification": [
{
"rn": "1",
"id": "224",
"company_details": {
"code": "2",
}
},
{
"rn": "2",
"id": "219",
"company_details": {
"code": "3",
}
},
{
"rn": "3",
"id": "213",
"company_details": {
"code": "3",
}
},
{
"rn": "4",
"id": "209",
"company_details": {
"code": "4",
}
},
{
"rn": "5",
"id": "204",
"company_details": {
"code": "3",
}
},
{
"rn": "6",
"id": "199",
"company_details": {
"code": "3",
}
},
{
"rn": "7",
"id": "193",
"company_details": {
"code": "3",
}
}
],
}
我应该如何实现并解决它?

最佳答案

正如另一个答案中所述, Key 函数需要一个字符串来创建一个基于它的键。如果您可以根据其中一个参数(例如 id )来识别项目,那么您可以使用 item.id就可以了。
但是,为了确保它是任何参数组合的真正唯一键(在您的情况下 idrncompany_details ),您可以使用 ObjectKey :
替换以下行:

key: Key(item)
具有以下内容:
key:ObjectKey(item)
通过这种方式,Flutter 可以识别您项目的参数并根据它们的组合创建一个键。
其他选项包括 ValueKeyUniqueKey .

关于flutter - 在 flutter 列表中实现 Dismissible 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64337013/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com