How to solve the error: Null check operator used on a null value?
How to solve the error: Null check operator used on a null value?
字段验证不起作用,显示错误:对空值使用了空检查运算符。
我从 docs.flutter 中举了一个例子。我该如何解决?
class _AddGroupPageState extends State<AddGroupPage> {
final _groupController = TextEditingController();
final _formKey = GlobalKey<FormState>();
@override
void dispose() {
_groupController.dispose();
super.dispose();
}
@override
Widget build(BuildContext context) {
return: Scaffold(
body: Padding(
padding: const EdgeInsets.all(8.0),
child: Column(
children: [
TextFormField(
key: _formKey,
controller: _groupController,
validator: (value) {
if (value == null || value.isEmpty) {
return 'Group name cannot be empty';
}
return null;
},
),
],
),
),
...
void _saveGroup() {
final isValid = _formKey.currentState!.validate();
if (isValid) {
BlocProvider.of<NewGroupBloc>(context)
.add(AddGroupEvent(_groupController.text.trim()));
}
}
用 Form 小部件包装您的 TextFormField 并将 formkey 传递给该小部件
Form(
key: _formKey,
child: TextFormField(
controller: _groupController,
validator: (value) {
if (value == null || value.isEmpty) {
return 'Group name cannot be empty';
}
return null;
},
),
),
您必须将 formKey 提供给表单而不是文本字段本身
像这样使用:
Form(
key: _formKey,
child: Column(
children: [
TextFormField(
//your code
字段验证不起作用,显示错误:对空值使用了空检查运算符。 我从 docs.flutter 中举了一个例子。我该如何解决?
class _AddGroupPageState extends State<AddGroupPage> {
final _groupController = TextEditingController();
final _formKey = GlobalKey<FormState>();
@override
void dispose() {
_groupController.dispose();
super.dispose();
}
@override
Widget build(BuildContext context) {
return: Scaffold(
body: Padding(
padding: const EdgeInsets.all(8.0),
child: Column(
children: [
TextFormField(
key: _formKey,
controller: _groupController,
validator: (value) {
if (value == null || value.isEmpty) {
return 'Group name cannot be empty';
}
return null;
},
),
],
),
),
...
void _saveGroup() {
final isValid = _formKey.currentState!.validate();
if (isValid) {
BlocProvider.of<NewGroupBloc>(context)
.add(AddGroupEvent(_groupController.text.trim()));
}
}
用 Form 小部件包装您的 TextFormField 并将 formkey 传递给该小部件
Form(
key: _formKey,
child: TextFormField(
controller: _groupController,
validator: (value) {
if (value == null || value.isEmpty) {
return 'Group name cannot be empty';
}
return null;
},
),
),
您必须将 formKey 提供给表单而不是文本字段本身 像这样使用:
Form(
key: _formKey,
child: Column(
children: [
TextFormField(
//your code