flutter - 如何从 Listview.builder 中获取模型类 Flutter 的列表索引
问题描述
我有一堂课
class Consultant {
final int id;
final String consultantFirstName;
final String consultantLastName;
final String consultantNickName;
const Consultant({
this.id,
this.consultantFirstName,
this.consultantLastName,
this.consultantNickName,
});
}
final Consultant marco = Consultant(
id: 1,
consultantFirstName: 'Marco',
consultantLastName: 'Marcello',
);
final Consultant carmela = Consultant(
id: 2,
consultantFirstName: 'Carmela',
consultantLastName: 'Maiocchi',
consultantNickName: 'Mariz Safe',
List<Consultant> consultant = [
marco,
carmela,
];
如果我将此列表调用到 ListviewBuilder 中,一切都很好,因为 INDEX 到 Listviewbuilder 中,问题是如果我不在 ListViewbuilder 中,我无法获取索引并且我收到错误,因为如果我调用consultant: consultant[index];
将数据传递给新的小部件则没有索引这是我调用 Listview.builder 并获得价值的方式:
ListView.builder(
padding: EdgeInsets.all(5),
itemCount: consultant.length,
itemBuilder: (BuildContext context, int index) {
return Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
GestureDetector(
onTap: () => Navigator.push(
context,
MaterialPageRoute(
builder: (_) => ConsultantProfile(
consultant: consultant[index],
),
),
),
但是如果我从 Listview.builder 小部件中出去,我尝试调用另一个小部件来传递数据,如下所示:
appBar: AppBar(
title: Text(
'Desteeno',
style: TextStyle(fontWeight: FontWeight.w300, color: Colors.white),
),
backgroundColor: Colors.purple,
centerTitle: true,
elevation: 15,
shadowColor: Colors.black,
actions: [
IconButton(
onPressed: () {
Navigator.pop(context);
showDialog(
context: context,
builder: (context) => ContactForm(
consultant: consultant[index],
),
);
},
我得到索引红色下划线和错误:
The getter 'index' isn't defined for the class '_ConsultantProfileState'
我知道我需要从我的列表中定义索引,但我不知道如何
解决方案
试试这个,它应该有帮助:
appBar: AppBar(
title: Text(
'Desteeno',
style: TextStyle(fontWeight: FontWeight.w300, color: Colors.white),
),
backgroundColor: Colors.purple,
centerTitle: true,
elevation: 15,
shadowColor: Colors.black,
actions: [
IconButton(
onPressed: () {
Navigator.pop(context);
showDialog(
context: context,
builder: (context) => ContactForm(
consultant: widget.consultant,
),
);
推荐阅读
- flutter - `onGenerateRoute`和`routes`之间的深度区别?
- r - 来自向量列表的数据框
- vb.net - Visual Basic:带前导零的简单计数器
- mysql - Laravel Lumen 查询返回错误的时间戳时间
- javascript - 在 html 画布图表上绘制负面和正面区域
- c# - 将频道添加到 Microsoft Team 时出现问题(C# 代码,将频道类型转换为接口)
- yaml - Azure 管道 ARM 部署任务 YAML 多行
- javascript - 屏蔽特定列对象nodejs
- php - 如何在 laravel 控制器类中创建全局数组?
- javascript - NodeJs - TypeError:无法读取 null 的属性“url”,但应用程序运行正常