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 通用类型的 FutureFuture 是一个普通的 class,因此您的方法需要 Future 类型的对象被 returned。这里的 void 定义了成功解析的 Future 的值应该是什么类型。

像这样

Future<void> saveEverything() async {

_formKeyForDeposit.currentState?.save();

Navigator.of(this.context).pop(true);

}