Dart 比较两个字符串返回 false

标签 dart flutter

我是 dart 新手,在构建我的 Flutter 应用程序时遇到了问题。

我有一个 Firestore 数据库作为后端,我从那里获取数据。

当我想将名为 status 的部分数据与文本“CREATED”进行比较时,使用 == 比较器,dart 将返回 false。

有人可以解释为什么以及如何正确检查它吗?

rideObject 是一个 map

enter image description here

更新:

这是具有条件的函数:

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): CREATED



在这里可以看到rideObject的结构

enter image description here

有趣的是,rideObject["status"] 是 String 类型,如控制台中所示:
rideObject["status"] is String
true
"CREATED" is String
true
rideObject["status"]
"CREATED"
rideObject["status"] == "CREATED"
false

最佳答案

如果两者都是真正的字符串,则可以使用“compareTo”,如果两者相等,则返回 0。

if(str1.compareTo(str2)==0){
}
解释如下:
https://www.tutorialspoint.com/dart_programming/dart_programming_string_compareto_method.htm

关于Dart 比较两个字符串返回 false,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56207020/

相关文章:

dart - 自定义 AppBar Flutter

dart - Dart 中 ThemeData 类的 copyWith() 方法

flutter - 如何在 Flutter 中为 PopUpMenuButton 提供高度?

flutter - 具有命名参数的构造函数设置私有(private)变量后验证

performance - 如何提高Dart进行二进制数据转换的性能?

dart - 我可以在Google DART中使用(facebook)解析库吗?

firebase - 如何使用 Flutter 从 Firestore 中的集合中获取特定文档

firebase - flutter async 同步编程

firebase - firebase_auth:禁用用户时,抛出PlatfromException而不是FirebaseAuthInvalidUserException?

flutter - 在Flutter中更新Firestore后,项目无法编译