在textformField如何使用initialValue和控制器都在同一时间?



我想同时使用controller和initialValue但是显示错误

TextFormField(
controller: txtEmail,
initialValue: initialValues['emailAddress'],
decoration: InputDecoration(
prefixIcon: Icon(Icons.email),
label: Text('Email Address'),
focusedBorder: UnderlineInputBorder(borderSide: BorderSide(color: accentColor)),
enabledBorder: UnderlineInputBorder(borderSide: BorderSide(color: iconColor))
),
),

不能同时使用控制器和初始值。要么你用onChanged属性的initialValue要么用控制器。如果您需要控制器和初始值,那么您可以将初始值分配给controller.text

final textController = TextEditingController();
void initState(){
textController.text = 'your initial value';

super.initState();
}

因为文本表单字段想要断言(initialValue == null || controller == null)。所以你可以将initialValue文本设置为controller

添加:

txtEmail.text = initialValues['emailAddress'];

删除initialValue:

TextFormField(
controller: txtEmail,
decoration: InputDecoration(
prefixIcon: Icon(Icons.email),
label: Text('Email Address'),
focusedBorder: UnderlineInputBorder(borderSide: BorderSide(color: accentColor)),
enabledBorder: UnderlineInputBorder(borderSide: BorderSide(color: iconColor))
),
),

最新更新