Flutter 颤振中的文本字段编辑

Flutter 颤振中的文本字段编辑,flutter,Flutter,我有一个文本字段,其中包含数据库中的一些数据(用户名)。我应该允许用户编辑他的名字,然后保存在数据库中 我的问题是我无法编辑文本文件。这是我的密码。请帮忙 var nameController = TextEditingController(); TextFormField( controller: nameController=TextEditingController(text:snapshot.data[index].name,),

我有一个文本字段,其中包含数据库中的一些数据(用户名)。我应该允许用户编辑他的名字,然后保存在数据库中

我的问题是我无法编辑文本文件。这是我的密码。请帮忙

var nameController = TextEditingController();

TextFormField(

    controller: nameController=TextEditingController(text:snapshot.data[index].name,),                                         
                      onChanged: (name){

                        setState(() {
                          nameController.text = name;
                        });
                      },


)
如何编辑文本 当用户键入时,文本将自动显示。 无需调用
setState
textededitingcontroller.text
再次设置文本

例如:

    TextFormField(
  decoration: InputDecoration(
    labelText: 'Enter your username'
  ),
);
如何在文本更改时保存到Db。 有几种选择

  • 使用另一个按钮,说“保存”保存文本。如果是这种情况,则使用
    textEditingController.text
    vale保存到数据库
  • 如果要在文本更改时保存数据,可以使用
    onChanged:(名称)
    callback。但请注意,此回调将 当用户键入文本并执行DB时,调用过于频繁 对每个文本更改事件进行操作可能不是一个好主意。但是,是的,您可以使用RxDart强大的API来消除事件的影响,找出用户何时停止键入,并使用该值保存到数据库中 如何从文本字段读取文本? 官方文件用一些很好的例子详细解释了这一点

    如何为文本字段指定初始值? 为此,您可以使用
    文本编辑控制器

    final TextEditingController _controller = new TextEditingController();
        @override
      void initState() {
        super.initState();
        _Controller.text = "Your Text";
        }
    


    希望这有帮助。

    文本字段的初始值来自DB。如果用户希望编辑其姓名,则更新后的姓名应存储在数据库中。我已经调用了save函数来执行此操作。但是,当我单击“保存”按钮时,我的TextField值正在刷新并变为初始值。@raj在init state方法中,您可以使用初始值初始化控制器。另外,在save方法中,使用相同的控制器对象读取当前值,例如:controller。文本。你能解释一下你到底在哪里遇到困难吗?更改文本字段值后,当我单击键盘上的“完成”按钮时,它只显示以前的值(更改之前,我从DB检索到的值)