I am not able to access TextEditingController using bloc in Flutter

117

all are same but I include BlocProvider in : using multibloc:

    BlocProvider(
          create: (context) => UsernameupdateCubit(),
    ),

after that I changed my cubit :

    void nameUpdate(userUpdateController) =>
      emit(UsernameupdateState(userUpdateName: userUpdateController));

and yes that's it . thank you – @nvoigt #nvoigt

Share:
117
Admin
Author by

Admin

Updated on December 07, 2022

Comments

  • Admin
    Admin over 1 year

    How to access TextEditingController(); using bloc . here my code :- after i use

    BlocProvider.of<UsernameupdateCubit>(context).nameUpdate(userUpdateController.text);

    I got an error which is BlocProvider.of() called with a context that does not contain a UsernameupdateCubit.

    Please check : I use

    final userUpdateController = TextEditingController();
    

    then

    TextFormField(
              controller: userUpdateController,
              decoration: InputDecoration(
                labelText: "Full Name",
                border: OutlineInputBorder(),
                prefixIcon: Icon(FeatherIcons.user, size: 24),
              ),
            ),
    

    after that use a button to save/sent/access anywhere or display in list view : button is :

    Container(
              margin: EdgeInsets.only(top: 10),
              alignment: AlignmentDirectional.centerEnd,
              child: ElevatedButton(
                style: ElevatedButton.styleFrom(
                  elevation: 1,
                  primary: Color(0xff34495e),
                ),
                onPressed: () {
                  // BlocProvider.of<UsernameupdateCubit>(context).nameUpdate();
                  // BlocProvider.of<WeatherBloc>(context)
                  BlocProvider.of<UsernameupdateCubit>(context)
                      .nameUpdate(userUpdateController.text);
                },
                child: Text(
                  "Continue",
                ),
              ),
            ),
    

    My Cubit :

    class UsernameupdateCubit extends Cubit<UsernameupdateState> {
      UsernameupdateCubit() : super(UsernameupdateState(userUpdateName: ''));
    
      void nameUpdate(userUpdateController) =>
          emit(UsernameupdateState(userUpdateName: userUpdateController.text));
    }
    

    and state is :

        class UsernameupdateState {
      String userUpdateName;
      UsernameupdateState({
        required this.userUpdateName,
      });
    }
    
    • nvoigt
      nvoigt over 2 years
      This has nothing to do with TextEditingController. Where is your UsernameupdateCubit located? Do you have a BlocProvider somewhere that instantiates it?
    • Admin
      Admin over 2 years
      yes, you are right. I solved this issue .