发生异常。_CastError(对 null 值使用的 Null 检查运算符)

Exception has occurred. _CastError (Null check operator used on a null value)

提问人:Ali Mustadji 提问时间:1/4/2023 最后编辑:MendelGAli Mustadji 更新时间:1/4/2023 访问量:45

问:

此代码中的 Null Safety 如何

class EditProduct extends StatelessWidget {
  final _formKey = GlobalKey<FormState>();

有问题的代码行:_formKey.currentState!.validate()

ElevatedButton(
                  onPressed: () {
                    if (_formKey.currentState!.validate()) {
                      updateProduct().then((value) {
                        Navigator.push(
                            context,
                            MaterialPageRoute(
                                builder: (context) => HomePage()));
                      });
                    }
                  },
                  child: Text("save"))
Flutter dart 异常 null

评论


答:

0赞 Khunt Arpit 1/4/2023 #1

要使用表单键,您需要添加表单小部件,并在该小部件中,您需要在属性键中传递 formKey,如下所示:

Form(
  key: _formKey,
  child // your textfields.
)
0赞 Rahul Variya 1/4/2023 #2

您是否在表单小部件中分配了?_formkey

    Form(
       key: _formKey,
       child : ElevatedButton(
    onPressed: () {
      if (_formKey.currentState!.validate()) {
        updateProduct().then((value) {
          Navigator.push(
            context,
            MaterialPageRoute(
              builder: (context) => HomePage()));
            },
         );
      }
    },
    child: Text("save"),
  ),
),
    

评论

0赞 Rahul Variya 1/4/2023
如果要添加_formkey首先必须将小部件与表单小部件包装在一起,然后分配globle键并使用它。
0赞 My Car 1/4/2023 #3

请尝试以下代码:

Form(
  key: _formKey,
  child ElevatedButton(
    onPressed: () {
      if (_formKey.currentState!.validate()) {
        updateProduct().then((value) {
          Navigator.push(
            context,
            MaterialPageRoute(
              builder: (context) => HomePage()));
            },
         );
      }
    },
    child: Text("save"),
  ),
),