在 DateTime.parse() 中允许空字符串
Allowing null String in DateTime.parse()
我正在尝试将包含日期的字符串格式化为不同的日期格式。我从 Firestore 文档中获取数据。当我将数据拉入我的 flutter 应用程序的 UI 时,我想将其转换为 DateTime 类型,以便我可以采用不同的格式。
编辑 我添加了建议的编辑。
if (trxnProvider.sellerDisclosure24a != null && trxnProvider.sellerDisclosure24a != "") {
final String? sellerDisclosure24a = trxnProvider.sellerDisclosure24a;
_dt = DateTime.parse(sellerDisclosure24a);
sellerDisclosure24aController.text = DateFormat('EE, MM-dd-yyyy').format(_dt) ?? "";
} else {
sellerDisclosure24aController.text = "";
}
但是,我在这一行收到以下错误
_dt = DateTime.parse(trxnProvider.sellerDisclosure24a);
无法将参数类型 'String?' 分配给参数类型 'String'。 (文档)
'sellerDisclosure24a' 指的是 属性,因此无法升级。参见 http://dart.dev/go/non-promo-property(trxn_provider.dart:55)。
我试过同时添加“?”和 ”!”但我仍然得到错误。我该如何处理这个空安全问题?如您所见,我正在检查数据是否存在。
只需创建 trxnProvider.sellerDisclosure24a
的本地副本并改为使用它:
// A local copy!
final String? sellerDisclosure24a = trxnProvider.sellerDisclosure24a;
if (sellerDisclosure24a != null && sellerDisclosure24a != "") {
_dt = DateTime.parse(sellerDisclosure24a);
sellerDisclosure24aController.text = DateFormat('EE, MM-dd-yyyy').format(_dt) ?? "";
} else {
sellerDisclosure24aController.text = "";
}
我正在尝试将包含日期的字符串格式化为不同的日期格式。我从 Firestore 文档中获取数据。当我将数据拉入我的 flutter 应用程序的 UI 时,我想将其转换为 DateTime 类型,以便我可以采用不同的格式。 编辑 我添加了建议的编辑。
if (trxnProvider.sellerDisclosure24a != null && trxnProvider.sellerDisclosure24a != "") {
final String? sellerDisclosure24a = trxnProvider.sellerDisclosure24a;
_dt = DateTime.parse(sellerDisclosure24a);
sellerDisclosure24aController.text = DateFormat('EE, MM-dd-yyyy').format(_dt) ?? "";
} else {
sellerDisclosure24aController.text = "";
}
但是,我在这一行收到以下错误
_dt = DateTime.parse(trxnProvider.sellerDisclosure24a);
无法将参数类型 'String?' 分配给参数类型 'String'。 (文档) 'sellerDisclosure24a' 指的是 属性,因此无法升级。参见 http://dart.dev/go/non-promo-property(trxn_provider.dart:55)。
我试过同时添加“?”和 ”!”但我仍然得到错误。我该如何处理这个空安全问题?如您所见,我正在检查数据是否存在。
只需创建 trxnProvider.sellerDisclosure24a
的本地副本并改为使用它:
// A local copy!
final String? sellerDisclosure24a = trxnProvider.sellerDisclosure24a;
if (sellerDisclosure24a != null && sellerDisclosure24a != "") {
_dt = DateTime.parse(sellerDisclosure24a);
sellerDisclosure24aController.text = DateFormat('EE, MM-dd-yyyy').format(_dt) ?? "";
} else {
sellerDisclosure24aController.text = "";
}