Flutter 吸气剂';DatabaseHelper';isn';t为类定义'_MyCustomFormState';

Flutter 吸气剂';DatabaseHelper';isn';t为类定义'_MyCustomFormState';,flutter,sqflite,Flutter,Sqflite,DatabaseHelper是一个单例类,通过SQFlite用于字符串数据表 完整错误: 错误:未为类“\u MyCustomFormState”定义获取程序“DatabaseHelper”。 -“_MyCustomFormState”来自“package:textfieldvalidation/main.dart”(“lib/main.dart”)。 尝试将名称更正为现有getter的名称,或定义名为“DatabaseHelper”的getter或字段。 int i=await Databas

DatabaseHelper是一个单例类,通过SQFlite用于字符串数据表

完整错误: 错误:未为类“\u MyCustomFormState”定义获取程序“DatabaseHelper”。 -“_MyCustomFormState”来自“package:textfieldvalidation/main.dart”(“lib/main.dart”)。 尝试将名称更正为现有getter的名称,或定义名为“DatabaseHelper”的getter或字段。 int i=await DatabaseHelper.instance.insert(

import'包:textfieldvalization/database_helper.dart';
void main(){
runApp(MyApp());
}
类MyApp扩展了无状态小部件{
@凌驾
小部件构建(构建上下文){
返回材料PP(
标题:“表单验证演示”,
主题:主题数据(
主样本:颜色。蓝色,
),
家:脚手架(
appBar:appBar(
标题:文本(“表单验证演示”),
),
正文:MyCustomForm(),
),
);
}
}
//创建表单小部件
类MyCustomForm扩展了StatefulWidget{
@凌驾
_MyCustomFormState createState()=>\u MyCustomFormState();
}
//创建相应的状态类。
//此类保存与表单相关的数据。
类_MyCustomFormState扩展了状态{
//创建唯一标识表单小部件的全局键
//并允许对表单进行验证。
//
//注:
//这是一辆环球车,
//不是一个通俗的人
final _formKey=GlobalKey();
最终控制器=文本编辑控制器();
@凌驾
无效处置(){
controller.dispose();
super.dispose();
}
@凌驾
小部件构建(构建上下文){
//使用上面创建的_formKey构建表单小部件。
报税表(
键:_formKey,
子:列(
crossAxisAlignment:crossAxisAlignment.start,
儿童:[
TextFormField(
控制器:控制器,
验证器:(值){
if(value.isEmpty){
返回“请输入一些文本”;
}
返回null;
},
),
填充物(
填充:常量边集。对称(垂直:16),
儿童:升降按钮(
onPressed:()异步{
if(_formKey.currentState.validate()){
打印(controller.text);
Scaffold.of(上下文).showSnackBar(
小吃条(
内容:文本(“处理数据”),
),
);
int i=await DatabaseHelper.instance.insert(
{
DatabaseHelper.colName:controller.text,
},
);
打印(“插入的新id为$i”);
}
},
儿童:文本(“提交”),
),
),
],
),
);
}
}

通过添加这行代码解决了问题。
final dbHelper=DatabaseHelper.instance;
初始化控制器后
final controller=TextEditingController();
然后用这行代码替换
DatabaseHelper.instance.insert
dbHelper.insert

 int i = await DatabaseHelper.instance.insert(
                {
                  DatabaseHelper.colName: controller.text,
                },
              );
              print('New id inserted is $i');
import 'package:textfieldvalidation/database_helper.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Form Validation Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: Scaffold(
        appBar: AppBar(
          title: Text("Form Validation Demo"),
        ),
        body: MyCustomForm(),
      ),
    );
  }
}

//Create a Form Widget
class MyCustomForm extends StatefulWidget {
  @override
  _MyCustomFormState createState() => _MyCustomFormState();
}

//Create a corrsponding State class.
//This class holds data related to the form.
class _MyCustomFormState extends State<MyCustomForm> {
  //Create a global key that uniquely identifies the Form Widget
  //and allows validation of the form.
  //
  //Note:
  //This is a GlobalKey<FormState>,
  //not a GLobalKey<MyCustomFormState>
  final _formKey = GlobalKey<FormState>();
  final controller = TextEditingController();

  @override
  void dispose() {
    controller.dispose();
    super.dispose();
  }

  @override
  Widget build(BuildContext context) {
    //Build a Form widget using the _formKey created above.
    return Form(
      key: _formKey,
      child: Column(
        crossAxisAlignment: CrossAxisAlignment.start,
        children: [
          TextFormField(
            controller: controller,
            validator: (value) {
              if (value.isEmpty) {
                return 'Please enter some text.';
              }
              return null;
            },
          ),
          Padding(
            padding: const EdgeInsets.symmetric(vertical: 16),
            child: ElevatedButton(
              onPressed: () async {
                if (_formKey.currentState.validate()) {
                  print(controller.text);
                  Scaffold.of(context).showSnackBar(
                    SnackBar(
                      content: Text('Processing Data'),
                    ),
                  );
                  int i = await DatabaseHelper.instance.insert(
                    {
                      DatabaseHelper.colName: controller.text,
                    },
                  );
                  print('New id inserted is $i');
                }
              },
              child: Text("Submit"),
            ),
          ),
        ],
      ),
    );
  }
}