【发布时间】:2019-10-06 00:03:30
【问题描述】:
我是 dart 新手,在构建我的 Flutter 应用程序时遇到了问题。
我有一个 Firestore 数据库作为后端,我从那里获取数据。
当我想用 == 比较器比较部分称为状态的数据与文本“已创建”时,dart 将返回 false。
有人能解释一下为什么以及如何正确检查吗?
rideObject 是一个地图
更新:
这是包含条件的函数:
Widget _getPage() {
if (rideObject == null) {
return OrderRidePage(
address: address,
ridesReference: reference,
setRideReference: this._setRideReference);
} else {
print(rideObject['status']);
if (rideObject['status'] == "CREATED") {
return LoadingPage(
removeRideReference: this._removeRideReference,
rideReference: rideReference);
} else {
return RidePage(
address: address,
ridesReference: reference,
setRideReference: _setRideReference);
}
}
}
打印语句返回输出:
I/flutter (15469):已创建
这里可以看到rideObject的结构
有趣的是,rideObject["status"] 是 String 类型,如控制台中所示:
rideObject["status"] is String
true
"CREATED" is String
true
rideObject["status"]
"CREATED"
rideObject["status"] == "CREATED"
false
【问题讨论】:
-
你能把代码贴在你有问题的地方吗?我测试了一个类似的案例,它工作正常。
-
您确定从服务器收到字符串“CREATED”吗?可以打印出来验证一下吗?
-
@MazinIbrahim 我已经添加了代码示例和其他一些东西
-
也发生在我身上.. 比较两个确切的值字符串(来自服务器的 1 个)返回 false...