我是Flutter(和Dart)的新手,在尝试构建用于编辑对象的表单时,我在网上搜索了示例和教程,而我看到了这两种用法。
2和有什么不一样?我应该使用哪一个?
谢谢。
如果
Form
在需要保存,重置或验证操作的地方进行使用,请使用TextFormField
。其他简单用户输入捕获TextField
就足够了。
TextFormField
,与Form
小部件集成。
这是一个方便的小部件,将TextField小部件包装在FormField中。
一个Form
不需要祖先。该表单使一次保存,重置或验证多个字段变得更加容易。
要在没有表单的情况下使用,请将GlobalKey传递给构造函数,然后使用GlobalKey.currentState保存或重置表单字段。
样品:
TextFormField( decoration: const InputDecoration( icon: Icon(Icons.person), hintText: 'What do people call you?', labelText: 'Name *', ), onSaved: (String value) { // This optional block of code can be used to run // code when the user saves the form. }, validator: (String value) { return value.contains('@') ? 'Do not use the @ char.' : null; }, )
TextField
,这是没有Form
集成的基础文本字段。
onChanged
每当用户更改字段中的文本时,文本字段就会调用回调。如果用户指示他们已完成在字段中的键入(例如,通过按软键盘上的按钮),则文本字段将调用onSubmitted
回调。