Flutter null safety: Error: A value must be explicitly returned from a non-void function
Flutter null safety: Error: A value must be explicitly returned from a non-void function
Future<void> saveEverything() {
_formKeyForDeposit.currentState?.save();
Navigator.of(this.context).pop(true);
return;
}
这^抛出错误:
A value must be explicitly returned from a non-void function.
我试过返回 void,我试过 return true
,我试过返回 Future<void>
,我试过返回 Navigator.pop 行。
在 Whosebug 上有一个答案,但它不适用于强制的空安全,这个函数想要返回一些东西,尽管它是无效的。没看懂。
它不会编译,我希望能清楚地说明导致问题的原因,以及解决方案。
据我所知,none 个被调用的函数是异步的,因此您无能为力 await
。这意味着您的函数也不是异步的,并且不需要将 Future
用作 return 类型。 void
应该可以正常工作:
void saveEverything() {
_formKeyForDeposit.currentState?.save();
Navigator.of(this.context).pop(true);
}
编辑:具体回答:
this function wants something returned despite being void
return 类型不是 void
,它是具有 void
通用类型的 Future
。 Future
是一个普通的 class,因此您的方法需要 Future
类型的对象被 returned。这里的 void
定义了成功解析的 Future
的值应该是什么类型。
像这样
Future<void> saveEverything() async {
_formKeyForDeposit.currentState?.save();
Navigator.of(this.context).pop(true);
}
Future<void> saveEverything() {
_formKeyForDeposit.currentState?.save();
Navigator.of(this.context).pop(true);
return;
}
这^抛出错误:
A value must be explicitly returned from a non-void function.
我试过返回 void,我试过 return true
,我试过返回 Future<void>
,我试过返回 Navigator.pop 行。
在 Whosebug 上有一个答案,但它不适用于强制的空安全,这个函数想要返回一些东西,尽管它是无效的。没看懂。
它不会编译,我希望能清楚地说明导致问题的原因,以及解决方案。
据我所知,none 个被调用的函数是异步的,因此您无能为力 await
。这意味着您的函数也不是异步的,并且不需要将 Future
用作 return 类型。 void
应该可以正常工作:
void saveEverything() {
_formKeyForDeposit.currentState?.save();
Navigator.of(this.context).pop(true);
}
编辑:具体回答:
this function wants something returned despite being void
return 类型不是 void
,它是具有 void
通用类型的 Future
。 Future
是一个普通的 class,因此您的方法需要 Future
类型的对象被 returned。这里的 void
定义了成功解析的 Future
的值应该是什么类型。
像这样
Future<void> saveEverything() async {
_formKeyForDeposit.currentState?.save();
Navigator.of(this.context).pop(true);
}