首页 > 解决方案 > 如何在小部件树中编写具有空安全性的代码

问题描述

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

String? _selected;
String _placeholer = "select";


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

或者

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

控制台返回此错误:

意外的空值。

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

标签: flutterdart

解决方案


看来你在这里犯了一个错误。

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

像这样改变它:

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

更好的版本是这样的:

children: [
   Text(_selected ?? _placeholder)
]

推荐阅读