问题描述
我在 Flutter 应用中使用 FormTextField
要更新某个列的值,用户输入 FormTextField
,否则将该字段留空。
我尝试了这段代码,但它向列添加了一个 null
值,删除了现有值。我对这种行为不满意。
String _getProd5Name() {
if ((_prod5Controller.text).isNotEmpty == true) {
_prod5String = _prod5Controller.text;
}
return _prod5String;
}
有办法吗?
我发现了类似的问题,但它们与其他语言相关,他们的解决方案不能解决我的问题。
解决方法
String _getProd5Name() {
// Actually you don't have to make it private
// since this is a local variable inside a function
String _prod5String = variableContainingInitialValue;
if (_prod5Controller.text.isNotEmpty) {
_prod5String = _prod5Controller.text;
}
return _prod5String;
}
,
这是我的建议,因为我喜欢将所有内容都放在 1 行上。您可以根据您的结果期望更改 "" 部分。它与您的逻辑相同,但它更短,而不是返回 null 我让它返回空字符串“”。而且 (_prod5Controller.text).isNotEmpty == true 你可以把它缩短为 (_prod5Controller.text).isNotEmpty 因为 .isNotEmpty 总是返回布尔值 true/false 和 if-else 消耗布尔值
String _getProd5Name() {
return ((_prod5Controller.text).isNotEmpty) ? _prod5String = _prod5Controller.text : "";
}