flutter - 将 bool 转换为 int 以在 Flutter 小部件中显示数字
问题描述
我有一个聊天课:
List<Message> chats = [
Message(
sender: roberta,
time: '5:30 PM',
text: 'Hey, how\'s it going? What did you do today?',
isLiked: false,
unread: true,
),
Message(
sender: roberta,
time: '5:30 PM',
text: 'Hey, how\'s it going? What did you do today?',
isLiked: false,
unread: true,
),
Message(
sender: stefano,
time: '4:30 PM',
text: 'Hey, how\'s it going? What did you do today?',
isLiked: false,
unread: true,
),
具有消息属性,其中之一是“未读”属性。我如何将 true 分配给像数字 1 这样的 Int 并且如果为 false 为 0 我需要将此布尔值“未读”并转换为一个数字以显示有多少未读消息进入颤振的通知小部件
有输入吗?
解决方案
我认为这就是你所需要的。
List<Messages> x = [
Messages("asdg", true),
Messages("dagd", false),
Messages("asdg", true)
];
print(x
.map<int>((element) => element.read ? 1 : 0)
.fold<int>(0, (previous, obj) => previous + obj));
不过,为了提高效率,如果这是一个聊天应用程序。您应该订阅某种 Stream 并且仅保存一个计数器,如果您的侦听器触发了 onChanged,则该计数器会增加。
推荐阅读
- tkinter - 如何从按钮获得返回
- javascript - Git历史扩展无限加载屏幕
- c++ - enable_if 问题
- javascript - 更改代码以使用 UseLocation 而不是 __RouterContext。我现在有无效的挂钩呼叫
- r - 如何添加传记链接
- c++ - 在 Cmake 中使用 poppler 作为子项目,并且 `CMAKE_MODULE_PATH` 设置不正确
- python - 当值为文本时,读取文件并将值分配给变量时出现问题
- oracle - oracle 按登录日期计算玩家数量
- mysql - 从 Workbench 中的 SQL 查询中排除本地 csv
- python - 如何使用 DeepFace.detectFace() 实际检测图像中的多个人脸?