flutter - 未为类型列表定义发件人
问题描述
我有 2 个类别供用户使用
class User {
final int? id;
final String name;
final String imageUrl;
User({
this.id ,
this.name ='',
this.imageUrl='',
});
}
和班级留言
import 'package:flutter/material.dart';
import 'package:flutter_chat/models/user_models.dart';
class Message {
final String time; // Would usually be type DateTime or Firebase Timestamp in production apps
final String text;
final bool? isLiked;
final bool? unread;
final User? sender;
Message(
{
this.sender,
this.time='',
this.text='',
this.isLiked,
this.unread,
}
);
}
在课堂消息中,我定义了一个消息列表
List <Message> Chats = [
Message(
sender: james,
time: '5:30 PM',
text: 'Hey, how\'s it going? What did you do today?',
isLiked: false,
unread: true,
),
Message(
sender: olivia,
time: '4:30 PM',
text: 'Hey, how\'s it going? What did you do today?',
isLiked: false,
unread: true,
),];
并且主要我已经调用了这个列表当然我导入了以前类的路径问题是当我调用Chats.sender.name时它无法识别发件人并且错误消息是 getter 'sender' is not defined for类型“列表”
解决方案
您需要从列表中选择一个元素才能访问sender
. 尝试使用forEach
.
Chats.forEach((e) => print(e.sender));
对于ListView.builder
:
ListView.builder(
itemBuilder: (context, index) => Text(Chats[index].sender?.name ?? 'No Value'),
itemCount: Chats.length,
),
推荐阅读
- spring-boot - Spring Boot 登录 401 未经授权的邮递员
- python - 将字节字符串加载到 Flask Request() 对象中
- angular - [Angular 7+]:如何在另一个服务规范中对服务进行单元测试?
- angular - 在 webstorm 中的混合 Angular 应用程序中调试打字稿文件
- java - 不满足的依赖主体
- javascript - 如何动态加载 Modal 的内容(Bootstrap 4)
- c# - 何时更倾向于分配与租用阵列?
- r - 我对预测随机森林中的新数据有一些疑问
- reactjs - 在 React 中使用 typescript 传递功能性道具
- python - 如何从 Python 中的文件中删除“\n”行?