颤振-'initialValue == null ||控制器 == null':不正确。错误
Posted
技术标签:
【中文标题】颤振-\'initialValue == null ||控制器 == null\':不正确。错误【英文标题】:Flutter - 'initialValue == null || controller == null': is not true. error颤振-'initialValue == null ||控制器 == null':不正确。错误 【发布时间】:2019-03-12 12:17:12 【问题描述】:我正在尝试为文本字段设置初始值。但我无法在文本表单字段中设置初始值。我收到此错误 'initialValue == null || controller == null': is not true
。
代码:
Widget buildFirstName(BuildContext context)
valueBuilder = valueBuild();
return TextFormField(
controller: firstNameController,
initialValue: valueBuilder,
decoration: InputDecoration(
hintText: "Enter Name",
fillColor: Colors.white,
hintStyle: TextStyle(
color: Color.fromRGBO(0, 0, 0, 1.0),
fontFamily: "SFProText-Regular"),
),
validator: validatingName,
);
【问题讨论】:
你不能同时拥有一个 initialValue 和一个控制器 那么如何设置初始值以及如何跟踪用户在字段中输入的值 只使用 TextEditingController :),但不能同时使用(initialValue + 控制器) 您可以在创建 TextEditingController 的构造函数时为其设置初始值 【参考方案1】:您不能同时使用initialValue
和controller
。因此,最好使用controller
,因为您可以在其构造函数中设置默认文本。
这是一个例子。
// Create the controller.
final controller = TextEditingController(text: "Your initial value");
Widget build(BuildContext context)
return TextFormField(
controller: controller, // Assign it here.
// ...
);
要获取用户输入的值,请使用:
controller.text
【讨论】:
我正在创建一个表单,这样当用户第一次填写表单时,文本字段的初始值必须为空,但一旦他完成创建表单并提交它以及当他尝试编辑他的详细信息,例如。名称然后字段应具有用户先前输入的初始值 您必须使用 OnSaved 方法保存表单的值,然后在编辑模式下使用它。在 Init 方法中 - firstNameController.text = '';第一次运行时给它一个空值 & 在编辑模式下给它 firstNameController.text = 'Value';您必须使用两个变量 1 Bool(用于编辑)2 值(OnSaved 方法)。 您可以在这种情况下使用 SharedPreferences。最初默认值为null
,当用户保存某些内容时,您也可以保存该数据并稍后检索它,只需将该数据与 if else 条件一起使用controller
。
为什么需要控制器来更新控件?看起来很复杂以上是关于颤振-'initialValue == null ||控制器 == null':不正确。错误的主要内容,如果未能解决你的问题,请参考以下文章
升级颤振后颤振标签栏错误“getter'key'被称为null”
颤振升级后出现错误'textBaseline!= null'
颤振和json:NoSuchMethodError:方法'[]'在null上被调用