flutter - For 循环中的 If 语句 - (如果为 null,则不添加)
问题描述
我正在使用 Firestore 开展一个项目,我正在收集 Button 数据以使用 For 循环创建每个按钮。我可以设法获取这些数据并将其存储到列表中并创建按钮。现在我试图让用户在应用程序中添加或删除他自己的按钮。
这是一个示例
如果我的应用程序中有 5 个按钮,我正在从 firestore 收集信息以了解这些按钮是关闭还是打开。我将这个布尔状态存储到一个列表中,所以如果我有 5 个按钮,我会有一个你是的列表:
List<bool> cardsValue = [false, false, true, false, true];
但是当我删除其中一个按钮时,假设我删除了中间那个,我会得到一个数组,如下所示:
List<bool> cardsValue = [false, false, null, false, true];
我需要添加一个 If 语句,这样当我收到 null 作为响应时,它不会将该 null 添加到我的列表中。所以我的清单是:
List<bool> cardsValue = [false, false, false, true];
示例结束
实际代码:
这是我的列表的实际外观:
List<bool> cardsValue = [for (int i = 0; i < cardamount; i++) snapshot.data[devices[i]]];
我虽然在做但不幸的是没有工作是:
List<bool> cardsValue = [for (int i = 0; i < cardamount; i++) if (snapshot.data[devices[i]] == null){}else{snapshot.data[devices[i]]}];
解决方案
您可以使用类的where
方法List
来过滤掉null
值
List<bool> cardsValue = [for (int i = 0; i < cardamount; i++) snapshot.data[devices[i]]]
.where((v) => v != null)
.toList()
.cast<bool>()
输出
[false, false, false, true]
推荐阅读
- javascript - 我的刷新适用于图形但不适用于桌面
- firebase - 分组集合和内部集合的安全规则
- powershell - 使用 powershell 调用多个 Web 服务时重复值
- python-3.x - 如何找到人脸图像中旋转了多少角度?
- azure-logic-apps - 在 Azure Function Runtime 上使用 Logic App Standard 触发执行警告
- azure - 使用 Rest API 在 Azure Logic App 中启用 Log Analytics 的工作流部署
- android - Jetpack Compose 在退出当前 Composable 时以成功状态重新组合两次
- python - 尝试使用 for 循环将数据框中的值存储在字典中
- c# - 我如何使用这个转义十六进制字符在 StringBuilder ESC X 上使用 C# 实现
- python - Flask 结合两个输入(提交和文件)