我有一个文本字段,其中包含来自数据库的一些数据(用户名)。我应该允许用户编辑他的名字,然后保存在数据库中。
我的问题是无法编辑归档的文本。这是我的代码。请帮忙。
var nameController = TextEditingController();
TextFormField(
controller: nameController=TextEditingController(text:snapshot.data[index].name,),
onChanged: (name){
setState(() {
nameController.text = name;
});
},
)
答案 0 :(得分:0)
用户输入时,文本将自动显示。
您无需调用setState
或TextEditingController.text
来再次设置文本。
示例:
TextFormField(
decoration: InputDecoration(
labelText: 'Enter your username'
),
);
有几种选择。
textEditingController.text
vale保存到数据库onChanged: (name)
回调。但请注意,此回调将
用户键入文本并执行数据库操作时,调用频率太高
对每个文本更改事件进行操作可能不是一个好主意。但是,可以的,您可以使用RxDart的强大API来对事件进行反跳,并找出用户何时停止键入并使用该值保存到数据库。 This官方文档通过一些好的示例对其进行了详细解释。
您可以为此使用TextEditingController
。
final TextEditingController _controller = new TextEditingController();
@override
void initState() {
super.initState();
_Controller.text = "Your Text";
}
希望这会有所帮助。