Home > Software design >  in textformField how to use initialValue and controller both at same time?
in textformField how to use initialValue and controller both at same time?

Time:11-29

i want to use controller and initialValue both at same time but showing error

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))
  ),
),

CodePudding user response:

because text form field want assert(initialValue == null || controller == null). so you can set initialValue text into controller

CodePudding user response:

You cant use the controller and initial value at the same time. It's either you use the initialValue with onChanged property or use the controller. If you need the controller and initial value, then you can assign your initial value to the controller.text

final textController = TextEditingController();

void initState(){
 textController.text = 'your initial value';
 
 super.initState();
}

CodePudding user response:

Add this:

txtEmail.text = initialValues['emailAddress'];

Remove 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))
  ),
),
  • Related