在 null_safety 中让 TextEditingController 为空

Let TextEditingController be null in null_safety

我已将我的项目转换为 null-safety Dart 2。转换后我一直在解决问题。现在,我需要更改此行

clientFNameController.text = widget.trxns!['clientFName'];

所以

clientFNameController.text = null;

这是声明控制器的行:

final clientNameController = TextEditingController();

我试过了

clientFNameController?.text = widget.trxns!['clientFName'];

还有这个

clientFNameController.text = widget.trxns?['clientFName'];

这一行要怎么写

  clientFNameController.text = widget.trxns['clientFName'];

所以这可能是真的

clientFNameController.text = null;

您不能将 TextEditingControllertext 属性 设置为 null,因为 setter 的类型是 String,不是 String?.

但是您可以使用空字符串 ""。例如,如果您希望您的文本字段在非空的情况下具有 widget.trxnw['clientFName'] 的文本,否则为空,您可以使用如下内容:

String? clientFName = widget.trxnw['clientFName'];
if (clientFName == null) {
  clientFNameController.text = "";
} else {
  clientFNameController.text = clientFName;
}

这可以缩短为:

String clientFName = widget.trxns['clientFName'] ?? "";  // "if null" operator
clientFNameController.text = clientFName;

或进一步缩短为:

clientFNameController.text = widget.trxns['clientFName'] ?? "";