问题描述
Flutter 表单保存错误 有一个 formKey 但我仍然收到错误
这是我的代码
class _TextFormFieldsstate extends State<TextFormFields> {
String _name = "";
final formKey = GlobalKey<FormState>();
@override
Widget build(BuildContext context) {
return Theme(
data: Theme.of(context).copyWith(
primaryColor: Colors.red,accentColor: Colors.purpleAccent,errorColor: Colors.black
),child: Scaffold(
floatingActionButton: FloatingActionButton(
onpressed: () {},child: Icon(Icons.save),),appBar: AppBar(
title: Text("Text Form Field"),body: Padding(
padding: EdgeInsets.all(20),child: Form(
key: formKey,autovalidateMode: AutovalidateMode.always,child: ListView(
children: [
TextFormField(
decoration: Inputdecoration(
prefixIcon: Icon(Icons.account_circle),hintText: "Your Name",labelText: "FullName",border: OutlineInputBorder(
borderRadius: BorderRadius.all(Radius.circular(10)),validator: (value) {
if (value == null || value.isEmpty) {
return 'Please enter some text';
}
return null;
},onSaved: (String? value) {
_name = value.toString();
},ElevatedButton(
onpressed: () {
// Validate returns true if the form is valid,or false otherwise.
if (formKey.currentState!.validate()) {
formKey.currentState.save();
debugPrint("Girilen ad $_name");
}
},child: Text('Submit'),],);
}
}
解决方法
这是由于Dart
的{{1}}。
您的 flow analysis
是一个实例变量,因此即使在您检查 formKey
之后,流分析也无法检测到它绝对不是 null
。
像这样使用它if