【发布时间】:2021-10-26 15:01:59
【问题描述】:
如何访问 TextEditingController();使用块。这是我的代码:- 使用后
BlocProvider.of<UsernameupdateCubit>(context).nameUpdate(userUpdateController.text);
我遇到了一个错误,即 使用不包含 UsernameupdateCubit 的上下文调用 BlocProvider.of()。
请检查: 我用
final userUpdateController = TextEditingController();
那么
TextFormField(
controller: userUpdateController,
decoration: InputDecoration(
labelText: "Full Name",
border: OutlineInputBorder(),
prefixIcon: Icon(FeatherIcons.user, size: 24),
),
),
之后使用按钮在任何地方保存/发送/访问或显示在列表视图中: 按钮是:
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",
),
),
),
我的肘:
class UsernameupdateCubit extends Cubit<UsernameupdateState> {
UsernameupdateCubit() : super(UsernameupdateState(userUpdateName: ''));
void nameUpdate(userUpdateController) =>
emit(UsernameupdateState(userUpdateName: userUpdateController.text));
}
状态是:
class UsernameupdateState {
String userUpdateName;
UsernameupdateState({
required this.userUpdateName,
});
}
【问题讨论】:
-
这与TextEditingController无关。您的 UsernameupdateCubit 在哪里?你在某处有实例化它的 BlocProvider 吗?
-
是的,你是对的。我解决了这个问题。