【发布时间】:2019-03-20 12:47:12
【问题描述】:
我正在创建一个聊天应用,如果用户连续发送多条消息,我不想一遍又一遍地显示用户头像。
用户消息存储在Map 中,其中最新消息的索引为0。
要检查index 的消息是否与之前的消息是由同一个人发送的,我使用以下方法:
bool _sameUser () {
if (index > 0 && map != null && map[index + 1] != null && map[index + 1]['fromUser’] == map[index][‘fromUser’]) {
return true;
} else {
return false;
}
}
但是,这不适用于最新消息或来自同一用户的两条以上消息。 如何重写条件以使其按预期工作?
谢谢!
更新:
在尝试@Marcel 回答并进行更多测试后,我发现另一个问题可能是导致此问题的原因。
map[index + 1] != null 即使在发送消息 2 时也不为真。仅在发送消息 3 后为真。
我用条件函数测试:
if (map[index + 1] != null) {
print('!=null');
}
【问题讨论】:
标签: oop if-statement dart flutter boolean