Dart 空值安全和智能检测非空值

问题描述

我在 Dart 空安全方面遇到问题。

即使我明确检查空值,它仍然抱怨

enter image description here

感叹号正在解决这个问题

enter image description here

但它非常丑陋和笨重。

有没有办法让它更智能、更漂亮?像例如header?.let{ it.toupperCase() } 在 Kotlin 中?

解决方法

我想标题的类型是 String?。似乎逻辑表达式中使用的变量必须是当前上下文的局部范围的一部分。在您的示例中,将标题作为字符串传递?类型参数允许您访问字符串方法,如果它的值不为空。

  Widget _buildHeader(String? header) {
    if (header != null) {
      return Text(h.toUpperCase());
    }
    return Container();
  }