在 null 上调用了方法 'salvar'
The method 'salvar' was called on null
我对这种情况有疑问。你能帮助我吗 ?我正在接受这条错误信息。
发生异常。
我想在列表中保存一个东西但显示:
处理手势时抛出以下 NoSuchMethodError:
在 null 上调用了方法 'salvar'。
接收者:空
尝试调用:salvar(Instance of '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(){
}
}
请帮帮我
您正试图在未实例化的对象上调用方法,因此它的 null
在 this._tarefaService.salvar(_tarefa)
中。您需要实例化 _tarefaService
。您可以在 init()
中完成
_tarefaService = new TarefaService(tarefaStore);
我对这种情况有疑问。你能帮助我吗 ?我正在接受这条错误信息。
发生异常。 我想在列表中保存一个东西但显示:
处理手势时抛出以下 NoSuchMethodError: 在 null 上调用了方法 'salvar'。 接收者:空 尝试调用:salvar(Instance of '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(){
}
}
请帮帮我
您正试图在未实例化的对象上调用方法,因此它的 null
在 this._tarefaService.salvar(_tarefa)
中。您需要实例化 _tarefaService
。您可以在 init()
_tarefaService = new TarefaService(tarefaStore);