【问题标题】:empty form text filed空表单文本字段
【发布时间】:2021-04-09 22:18:50
【问题描述】:

我在 Flutter 应用中使用 FormTextField

要更新某个列的值,用户输入FormTextField,否则将该字段留空。

我尝试了这段代码,但它在列中添加了一个 null 值,删除了现有值。我对这种行为不满意。

      String _getProd5Name() {
           if ((_prod5Controller.text).isNotEmpty == true) {
              _prod5String = _prod5Controller.text;
            } 
             return _prod5String;
           }

有办法吗?

我发现了类似的问题,但它们与其他语言相关,它们的解决方案无法解决我的问题。

【问题讨论】:

    标签: forms flutter flutter-text


    【解决方案1】:

    这是我的建议,因为我喜欢将所有内容都放在一行上。您可以根据您的结果期望更改“”部分。这与您的逻辑相同,但它更短,而不是返回 null,我让它返回空字符串“”。还有 (_​​prod5Controller.text).isNotEmpty == true 你可以把它缩短为 (_prod5Controller.text).isNotEmpty 因为 .isNotEmpty 总是返回布尔值 true/false 和 if-else 消耗布尔值

    String _getProd5Name() {
       return ((_prod5Controller.text).isNotEmpty) ? _prod5String = _prod5Controller.text : "";
    }
    

    【讨论】:

    • @dwikumiantim...空字符串将删除现有的列值..它与null的效果相同...我不想要两者..我需要一种方法来保留现有的列值如果用户不想更新特定的文本字段。
    • 问题是您是否要将现有(未更改的)值发送到后端?如果您愿意,可以遵循 sidrao2006 解决方案。只需将它们(未更改的值)发送回后端很容易,因此您不必进行这些验证
    【解决方案2】:
    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;
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-07-05
      • 2021-04-17
      • 2020-02-12
      • 2017-12-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-09
      相关资源
      最近更新 更多