【问题标题】:How to get edited AutoCompleteTextField value into form data如何将编辑后的 ​​AutoCompleteTextField 值转换为表单数据
【发布时间】:2019-03-12 20:58:57
【问题描述】:

使用 Flutter 我有一个包含 AutoCompleteTextField 的表单,我正在尝试更改文本字段的值。当使用链接到我上一个问题的技术打开表单时,要编辑的值被放入 AutoCompleteTextField:

How to set the initial value of Flutter autocomplete_textfield

现在我发现,如果我尝试更改字段的值,自动完成似乎可以工作,但是在提交表单时新文本不会出现在表单数据中,之前的条目仍然存在。我尝试将新文本添加到表单数据中,但这不会改变行为。

“itemSubmitted”代码如下:

        itemSubmitted: (species) {
      setState(() {
        searchTextField.textField.controller.text = species.commonName;
      });

提交方法调用验证并保存表单数据:

  if (_formKey.currentState.validate() == false) {
    return;
  }
  _formKey.currentState.save();

我还需要做什么才能在公司数据中更新 AutoCOmpleteTextField 中的新选择?

更新: 看来,如果我从一个空白表单开始,我可以在 AutoCompleteTextField 中搜索一个条目,将数据保存到我的数据库(不清除表单),搜索新值,然后将数据正确放入表单中每次的数据。这表明打开表单时字段的初始化导致了问题。

席德

【问题讨论】:

    标签: android flutter


    【解决方案1】:

    这个问题完全是我自己造成的,我使用相同的代码来创建和编辑条目。为了区分 new 和 edit 我正在测试传递给页面的有效对象,我的错误是当我的文本搜索字段更新时,我只是检查是否有一个有效对象已传递给页面,当然,新数据在表单数据结构中,从未被放入正在编辑的对象中。

    解决方法是先检查是否有有效的输入对象,如果有则进行二次测试以查看表单数据是否与输入对象匹配,如果不匹配则将新数据放入输入对象中.

    【讨论】:

      猜你喜欢
      • 2021-11-26
      • 2013-06-21
      • 1970-01-01
      • 2017-06-20
      • 2012-10-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多