首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我无法在颤振中使用区块访问TextEditingController。

我无法在颤振中使用区块访问TextEditingController。
EN

Stack Overflow用户
提问于 2021-08-26 14:26:47
回答 1查看 274关注 0票数 1

如何访问TextEditingController();使用bloc。这是我的代码:-在我使用

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

我得到了一个错误,它是用不包含BlocProvider.of的上下文调用的UsernameupdateCubit ()。

请检查:,我使用

代码语言:javascript
复制
final userUpdateController = TextEditingController();

然后

代码语言:javascript
复制
TextFormField(
          controller: userUpdateController,
          decoration: InputDecoration(
            labelText: "Full Name",
            border: OutlineInputBorder(),
            prefixIcon: Icon(FeatherIcons.user, size: 24),
          ),
        ),

之后,使用按钮保存/发送/访问任何地方或显示在列表视图中:按钮是:

代码语言:javascript
复制
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",
            ),
          ),
        ),

我的小熊:

代码语言:javascript
复制
class UsernameupdateCubit extends Cubit<UsernameupdateState> {
  UsernameupdateCubit() : super(UsernameupdateState(userUpdateName: ''));

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

国家是:

代码语言:javascript
复制
    class UsernameupdateState {
  String userUpdateName;
  UsernameupdateState({
    required this.userUpdateName,
  });
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-08-27 05:44:23

所有这些都是相同的,但我将BlocProvider包括在:使用多个组中:

代码语言:javascript
复制
    BlocProvider(
          create: (context) => UsernameupdateCubit(),
    ),

在那之后,我改变了我的身高:

代码语言:javascript
复制
    void nameUpdate(userUpdateController) =>
      emit(UsernameupdateState(userUpdateName: userUpdateController));

没错就是这样。谢谢- @nvoigt #nvoigt

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68940414

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档