skip to Main Content

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

3

Answers


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

    Login or Signup to reply.
  2. 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();
    }
    Login or Signup to reply.
  3. 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))
      ),
    ),
    
    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search