如何在小部件树中编写具有空安全性的条件

时间:2021-05-05 18:01:21

标签: flutter dart

我在根据 String null 安全值动态显示文本小部件时遇到问题。 所以,如果我写这样的条件:

String? _selected;
String _placeholer = "select";


         Row(
            children: [
              if (_selected != null) Text(_placeholer) else Text(_selected!),
            ],
          ),

         Row(
            children: [
              _selected!.isEmpty ? Text(_placeholer) : Text(_selected!),
            ],
          ),

控制台返回此错误:

<块引用>

意外的空值。

在视图上,我有红色容器而不是此文本。我该如何解决?

1 个答案:

答案 0 :(得分:1)

您好像在这里犯了一个错误。

            children: [
              if (_selected != null) Text(_placeholer) else Text(_selected!),
            ],

改成这样:

            children: [
              if (_selected == null) Text(_placeholer) else Text(_selected!),
            ],

更好的版本应该是这样的:

children: [
   Text(_selected ?? _placeholder)
]