文本内容扑朔迷离

时间:2020-03-07 06:40:27

标签: flutter

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

我的问题是无法编辑归档的文本。这是我的代码。请帮忙。

var nameController = TextEditingController();

TextFormField(

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

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


)

1 个答案:

答案 0 :(得分:0)

如何编辑文本

用户输入时,文本将自动显示。 您无需调用setStateTextEditingController.text来再次设置文本。

示例:

    TextFormField(
  decoration: InputDecoration(
    labelText: 'Enter your username'
  ),
);

文本更改时如何保存到Db。

有几种选择。

  1. 使用另一个按钮,说“保存”以保存文本。如果是这种情况,请使用textEditingController.text vale保存到数据库
  2. 如果要在文本更改时保存数据,则可以使用 onChanged: (name)回调。但请注意,此回调将 用户键入文本并执行数据库操作时,调用频率太高 对每个文本更改事件进行操作可能不是一个好主意。但是,可以的,您可以使用RxDart的强大API来对事件进行反跳,并找出用户何时停止键入并使用该值保存到数据库。

如何从TextField中读取文本?

This官方文档通过一些好的示例对其进行了详细解释。

如何为TextField分配初始值?

您可以为此使用TextEditingController

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

希望这会有所帮助。