'salvar'方法在null上调用

问题描述 投票:0回答:1

我对这种情况有疑问。你能帮助我吗 ?我正在收到此错误消息。

发生异常。我想在列表中保存一个东西,但是显示:

处理手势时抛出以下NoSuchMethodError: 方法“ salvar”在null上被调用。 接收者:null 尝试调用:salvar(“ Tarefa”的实例)

代码:

class TarefaScreen extends StatefulWidget {
  @override
  _TarefaScreenState createState() => _TarefaScreenState();
}

class _TarefaScreenState extends State<TarefaScreen> {
  final _formKey = GlobalKey<FormState>();
  TarefaService _tarefaService;

   String _titulo;
   String _descricao;
   DateTime _dataHora;

  @override
  void initState() {
    super.initState();

  }

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

  _save() {
    if (_formKey.currentState.validate()) {
      _formKey.currentState.save();

      Tarefa _tarefa = Tarefa(
          titulo: this._titulo,
          descricao: this._descricao,
          dataHora: this._dataHora);

      this._tarefaService.salvar(_tarefa).then((value) {
        showInfo("Tarefa adicionada");
        Navigator.of(context).pop();
      }
      );
    }
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text("Adicionar Tarefa")
        ,
      ),
    body: Form(
      key: _formKey,
      child: ListView(
        shrinkWrap: true,
        children: <Widget>[...

          Padding(
            padding: const EdgeInsets.only(top: 30, left: 10, right: 10, bottom: 5),
            child: RaisedButton(
              child: Text("Enviar"),
              onPressed: () {
                this._save();
              },
            ),
          ),
        ],
      ),
    ),
    );
  }
}

而且我在这里定义addItem;

class TarefaService {

  final TarefaStore tarefaStore;

  TarefaService(this.tarefaStore);

  Future<List<Tarefa>> buscarTarefas() {
    return Future.value(tarefaStore.tarefas);
  }

  Future<Tarefa> salvar(Tarefa atividade){
    tarefaStore.adicionarTarefa(atividade);
    return Future.value(atividade);
  }

  void dispose(){

  }
}

[请帮助我

我对这种情况有疑问。你能帮助我吗 ?我正在接受此错误消息。发生异常。我想在列表中保存一个东西,但显示:抛出以下NoSuchMethodError ...

flutter dart mobx
1个回答
0
投票

您正在尝试在未实例化的对象上调用方法,因此其在null中的this._tarefaService.salvar(_tarefa)。您需要实例化_tarefaService。您可以在init()

© www.soinside.com 2019 - 2024. All rights reserved.