controllerWithInitialText method

  1. @override
TextEditingControllerImp controllerWithInitialText(
  1. String text
)
override

Initializes a controller with the given initial text.

It is useful when the initial value is obtained in the build method of the widget tree. (We can not initialize the controller when creating the injectedTextEditingController)

Don't do

final myInjectedController= RM.injectTextEditingController();

// In the widget tree
Widget builder(BuildContext context){
  final initialValue = ...;
   return TextField(
     controller: myInjectedController.controller..text = initialValue,
   )
}

Do

final myInjectedController= RM.injectTextEditingController();

// In the widget tree
Widget builder(BuildContext context){
  final initialValue = ...;
   return TextField(
     controller: myInjectedController.controllerWithInitialText(initialValue) ,
   )
}

Implementation

@override
TextEditingControllerImp controllerWithInitialText(String text) {
  if (_controller == null) {
    return controller..text = text;
  }
  return controller;
}