flutter 如何防止setState更改用户先前输入的表单字段的值,或者防止setState抖动的解决方法

fzsnzjdm  于 2023-05-29  发布在  Flutter
关注(0)|答案(1)|浏览(121)

我的表单域由几个文本域和一个组合框组成
这里的问题是当用户在文本字段中输入数据时,然后更改组合框值,其中调用setState,使整个表单重新设置为初始数据。
用户提交了表单,但文本字段已经恢复为初始值,而不是用户输入的值

在combobox更改和setState调用之前的代码中,我已经捕获了所有的textfield值,即用户刚刚输入的值:

如上面的代码所示,setState后重置textfield值不起作用,由于setState的原因,表单重新加载后,表单textfield仍然使用初始值。这里的初始值是后端restful API中的/get by id的原始数据。请帮忙,提前谢谢。
编辑
这是我将控制器附加到TextField的屏幕截图

mwg9r5ms

mwg9r5ms1#

您忘记将TextEditingController附加到TextField/TextFormField上,这是一个很高的变化。我从来没有见过当我们调用setState时文本值消失的情况。你不需要中间变量比如名字电话... - 直接使用textEditingController.text即可。这是我根据你提供的信息做出的假设。请提供更多关于您的文本字段代码的东西。

相关问题