首页 > 解决方案 > 未为类型列表定义发件人

问题描述

我有 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类型“列表”

标签: flutterdart

解决方案


您需要从列表中选择一个元素才能访问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,
),

推荐阅读