Функция построения возвращает значение NULL при проверке формы Flutter - PullRequest
0 голосов
/ 20 апреля 2020

Я создаю форму с проверкой с помощью Flutter, и я столкнулся с проблемой. Я очень удивлен, поскольку - пока - следую официальной документации. Я посмотрел на многих веб-сайтах, и мой код выглядит похожим, но я все еще получаю ошибку.

Мой код:

class addObjectForm extends StatefulWidget {
  @override
  addObjectFormState createState() => addObjectFormState();
}

class addObjectFormState extends State<addObjectForm> {
  Widget build(BuildContext context) {
    final _formKey = GlobalKey<FormState>();

    @override
    Widget build(BuildContext context) {
      MyObject _insertedObject = MyObject();

      return Form(
          key: _formKey,
          child: Column(
            children: <Widget>[
              TextFormField(
                decoration: InputDecoration(labelText: "Insert object name"),
                keyboardType: TextInputType.text,
                validator: (value) {
                  if (value.isEmpty) {
                    return 'Please insert a value';
                  }
                  return null;
                },
                onSaved: (value) => _insertedObject.objectName = value,
              ),
              RaisedButton(
                child: Text("Add"),
                onPressed: () {
                  if (_formKey.currentState.validate()) {
                    _formKey.currentState.save();
                    //To be changed to change state and save it into the global object list
                    Scaffold.of(context).showSnackBar(
                        SnackBar(content: Text('Object has been added')));
                  }
                },
              )
            ],
          ));
    }
  }
} //End of addObjectFormState

Сообщение об ошибке (в симуляторе iOS, а не в VSCode):

Error message

Спасибо!

1 Ответ

1 голос
/ 20 апреля 2020

Вы добавили функцию компоновки в другую функцию компоновки:

Widget build(BuildContext context) { // Build method 1
    final _formKey = GlobalKey<FormState>();

    @override
    Widget build(BuildContext context) { // Build method 2 (placed inside first)
      MyObject _insertedObject = MyObject();

Итак, в основном вы реализовали все внутри второго метода компоновки. И вы ничего не возвращаете с первого, вот причина ошибки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...