我试图验证我的用户输入,其中包含两个输入字段“ Headers ”和“描述”后单击浮动操作按钮但我得到一个错误,当我这样做 .
notes_detail_widget.dart
class NoteDetailsWidgetState extends State<NoteDetailsWidget> {
final _formKey = new GlobalKey<FormState>();
String _title;
String _description;
_submit() {
if (_formKey.currentState.validate()) {
_formKey.currentState.save();
}
}
@override
Widget build(BuildContext context) {
return new Scaffold(
appBar: new AppBar(
title: new Text("Edit note data"),
),
body: new Form(
child: new Container(
margin: new EdgeInsets.all(16.0),
child: new Column(
mainAxisAlignment: MainAxisAlignment.start,
children: <Widget>[
new Container(
child: new TextFormField(
decoration: new InputDecoration(
labelText: "Title",
border: InputBorder.none,
),
validator: (val) =>
val.isNotEmpty ? null : "Title must not be empty",
onSaved: (val) => _title = val),
),
new Container(
child: new Divider(
color: Colors.black,
)),
new TextFormField(
decoration: new InputDecoration(
labelText: "Description",
border: InputBorder.none,
),
keyboardType: TextInputType.multiline,
maxLines: 3,
validator: (val) =>
val.isNotEmpty ? null : "Description must not be empty",
onSaved: (val) => _description = val,
)
])),
),
floatingActionButton: new FloatingActionButton(
onPressed: () => _submit(), child: new Icon(Icons.check)),
);
}
}
Error Log:
I/flutter ( 8055): ══╡ EXCEPTION CAUGHT BY GESTURE ╞═══════════════════════════════════════════════════════════════════
I/flutter ( 8055): The following NoSuchMethodError was thrown while handling a gesture:
I/flutter ( 8055): The method 'validate' was called on null.
I/flutter ( 8055): Receiver: null
I/flutter ( 8055): Tried calling: validate()
I/flutter ( 8055):
I/flutter ( 8055): When the exception was thrown, this was the stack:
I/flutter ( 8055): #0 Object.noSuchMethod (dart:core/runtime/libobject_patch.dart:50:5)
I/flutter ( 8055): #1 NoteDetailsWidgetState._submit (package:notes_crud_app/note_details_widget.dart:16:31)
I/flutter ( 8055): #2 NoteDetailsWidgetState.build.<anonymous closure> (package:notes_crud_app/note_details_widget.dart:61:28)
I/flutter ( 8055): #3 _InkResponseState._handleTap (package:flutter/src/material/ink_well.dart:507:14)
I/flutter ( 8055): #4 _InkResponseState.build.<anonymous closure> (package:flutter/src/material/ink_well.dart:562:30)
I/flutter ( 8055): #5 GestureRecognizer.invokeCallback (package:flutter/src/gestures/recognizer.dart:102:24)
I/flutter ( 8055): #6 TapGestureRecognizer._checkUp (package:flutter/src/gestures/tap.dart:242:9)
I/flutter ( 8055): #7 TapGestureRecognizer.handlePrimaryPointer (package:flutter/src/gestures/tap.dart:175:7)
I/flutter ( 8055): #8 PrimaryPointerGestureRecognizer.handleEvent (package:flutter/src/gestures/recognizer.dart:315:9)
I/flutter ( 8055): #9 PointerRouter._dispatch (package:flutter/src/gestures/pointer_router.dart:73:12)
I/flutter ( 8055): #10 PointerRouter.route (package:flutter/src/gestures/pointer_router.dart:101:11)
I/flutter ( 8055): #11 _WidgetsFlutterBinding&BindingBase&GestureBinding.handleEvent (package:flutter/src/gestures/binding.dart:180:19)
I/flutter ( 8055): #12 _WidgetsFlutterBinding&BindingBase&GestureBinding.dispatchEvent (package:flutter/src/gestures/binding.dart:158:22)
I/flutter ( 8055): #13 _WidgetsFlutterBinding&BindingBase&GestureBinding._handlePointerEvent (package:flutter/src/gestures/binding.dart:138:7)
I/flutter ( 8055): #14 _WidgetsFlutterBinding&BindingBase&GestureBinding._flushPointerEventQueue (package:flutter/src/gestures/binding.dart:101:7)
I/flutter ( 8055): #15 _WidgetsFlutterBinding&BindingBase&GestureBinding._handlePointerDataPacket (package:flutter/src/gestures/binding.dart:85:7)
I/flutter ( 8055): #16 _invoke1 (dart:ui/hooks.dart:168:13)
I/flutter ( 8055): #17 _dispatchPointerDataPacket (dart:ui/hooks.dart:122:5)
我对 Dart
和_16280都很新 . 请指导 .
1 回答
你没有在表单中添加表单键