0

How do I break out "myEditMyProfileController.initFullName" and "myEditMyProfileController.tempFullName" to Method argument the controllers is GetxController and initFullName/tempFullName is String...? (I use GetX + Flutter + Dart)

Container buildEditProfileField(String myLabel, TextEditingController myTextEditingController )
{
   return Container(
      child: Padding(
         padding: const EdgeInsets.only(bottom: 15),
         child: GetBuilder<EditMyProfileController>(
           init: EditMyProfileController(),
           builder: (value) => TextFormField(
              controller: myTextEditingController,
              decoration: InputDecoration(
                 labelText: myLabel,
                 border: OutlineInputBorder(),
                 suffixIcon: myEditMyProfileController.initFullName != myEditMyProfileController.tempFullName ? Icon(Icons.update, color: Colors.teal) : null,
                 ),
              ),
           ),
        ),
     );
  }

1 Answers1

0

Managed to solve the problem...

GetBuilder needs to enclose the method call to be updated correctly.

GetBuilder<EditMyProfileController>(
   init: controller,
   builder: (_) {
      return ListView(
         scrollDirection: Axis.vertical,
         shrinkWrap: true,
         children: [
            buildEditProfileField("Full name", controller.myFullNameController, controller.initFullName, controller.tempFullName),
         ],
      );
   }
),
TextFormField buildEditProfileField(String myLabel, TextEditingController myTextEditingController, String init, String temp) 
{
    return TextFormField(
      controller: myTextEditingController,
      decoration: InputDecoration(
        labelText: myLabel,
        border: OutlineInputBorder(),
        suffixIcon: init != temp ? Icon(Icons.update, color: Colors.teal) : null,
      ),
   );
}