我有以下几种中频条件。
if (globals.chatroomInfoMap.containsKey(chatroomID)) {
if (messageData['name'] != null) {
globals.chatroomInfoMap[chatroomID].name =
messageData['name'];
print('object ${globals.chatroomInfoMap[chatroomID].name}');
}
print('1');
if (messageData['timestamp'] != null) {
globals.chatroomInfoMap[chatroomID].timestamp =
messageData['timestamp'];
print('object ${globals.chatroomInfoMap[chatroomID].timestamp}');
}
print('2');
if (messageData['members'] != null) {
globals.chatroomInfoMap[chatroomID].members =
messageData['members'];
print('object ${globals.chatroomInfoMap[chatroomID].members}');
}
print('3');
if (messageData['slogan'] != null) {
globals.chatroomInfoMap[chatroomID].slogan =
messageData['slogan'];
print('object ${globals.chatroomInfoMap[chatroomID].slogan}');
}
print('object here');
}
在输出中,我只能看到以下内容
I / flutter(25612):对象OtherRoom !! @
I / flutter(25612):1
因此,我们看到的是第二个IF语句中的打印内容中的打印内容,而下一行是此后的打印内容中的'1'。然后就是所有调试打印。我不知道这是什么法术?我在Dartpad中尝试了相同的操作,以确保我没有正确使用语法。
Dartpad中使用的代码:
main() {
final Map<String, dynamic> messageData = {
'slogan': 'buhuhu1',
'chatroomID': 'H8j0EHhu2QpicgFDGXYZ',
'mode': 'chatroom - update',
'name': 'OtherRoom@!',
'timestamp': '2019-02-23T17:12:12.000Z',
'click_action': 'FLUTTER_NOTIFICATION_CLICK',
'members': ["fb7TfdFvl7tWgtSldgHs", "8kG2kE4jBkPs2qwt7GYA"]
};
final Map<String, dynamic> global = {'H8j0EHhu2QpicgFDGXYZ': 'something'};
if (global.containsKey(messageData['chatroomID'])) {
if (messageData['name'] != null) {
print('here 1');
}
print('here');
if (messageData['timestamp'] != null) {
print('here 2');
}
}
}
输出:
此处1
这里
此处2
能否请您帮助我了解我所缺少的内容?我确信这是一个非常愚蠢的错误。
答案 0 :(得分:1)
我遇到了问题。时间戳具有不同的数据类型。我想知道为什么它没有引发错误。感谢您的帮助。