首页 > 解决方案 > 将 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 我需要将此布尔值“未读”并转换为一个数字以显示有多少未读消息进入颤振的通知小部件

有输入吗?

标签: flutter

解决方案


我认为这就是你所需要的。

    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,则该计数器会增加。


推荐阅读