【问题标题】:How to add elements into ArrayList in HashMap? DART & Flutter如何在 HashMap 的 ArrayList 中添加元素?飞镖和颤振
【发布时间】:2020-05-13 16:44:53
【问题描述】:

在飞镖中寻找一个与这个问题完全一样的例子:How to add element into ArrayList in HashMap

  Map<int, List<Message>> user_id_mapped_to_messages_list = new HashMap();

这会引发一个空插入,我在这里缺少什么?

  user_id_mapped_to_messages_list[user_id].add(message_to_current_user);

错误:

I/flutter (11992): ==============================================
I/flutter (11992): Message is going to the logged in user id of: 11
I/flutter (11992): Message details:
I/flutter (11992): sender: Instance of 'User'
I/flutter (11992): time: 2020-05-11 22:28:26
I/flutter (11992): text: Message 2 from John to Joe
I/flutter (11992): message added to chat group
E/flutter (11992): [ERROR:flutter/lib/ui/ui_dart_state.cc(157)] Unhandled Exception: NoSuchMethodError: The method 'add' was called on null.
E/flutter (11992): Receiver: null
E/flutter (11992): Tried calling: add(Instance of 'Message')
E/flutter (11992): #0      Object.noSuchMethod (dart:core-patch/object_patch.dart:53:5)
E/flutter (11992): #1      _myappnameMessagesRecentChatsState.getConversations.<anonymous closure>.<anonymous closure> 
(package:myappname_app_androidx/widgets/home/messages/messages_v2/recent_chats.dart:158:83)

不存在任何项目...用于循环打印数组列表中的消息

user_id_mapped_to_messages_list.forEach((k,v) => print('${k}: ${v}'));

【问题讨论】:

  • 你能显示错误和 yoy 声明并插入列表的代码
  • 添加错误,我插入的代码太多无法发布...基本上只是:user_id_mapped_to_messages_list[user_id].add(message);

标签: flutter dart


【解决方案1】:

您创建了 Map 类型的 user_id_mapped_to_messages_list 变量,但使用 HashMap 进行了初始化,因为您遇到了错误。

应该如下所示。

Map<int, List<Message>> user_id_mapped_to_messages_list = new Map();

更新:

发生这种情况是因为当您在未实际初始化的情况下直接向列表分配或添加任何值时,因此在 a 之前添加以下行

user_id_mapped_to_messages_list[user_id] = [];

user_id_mapped_to_messages_list[user_id] = [];

    if (user_id_mapped_to_messages_list[user_id] == null) {
      user_id_mapped_to_messages_list[user_id] = [];
      user_id_mapped_to_messages_list[user_id].add(message_to_current_user);
    } else {
      user_id_mapped_to_messages_list[user_id].add(message_to_current_user);
    }

【讨论】:

    猜你喜欢
    • 2022-07-27
    • 1970-01-01
    • 2021-01-24
    • 1970-01-01
    • 1970-01-01
    • 2020-12-31
    • 2020-08-12
    • 2020-11-05
    相关资源
    最近更新 更多