此函数的返回类型为'Future <bool>'。尝试添加return语句

时间:2019-12-23 12:45:30

标签: flutter dart

我对onWillScope属性使用此方法,并且VS Code通知我以下内容:

  

此函数的返回类型为'Future',但不会结束   带有返回语句。尝试添加return语句,或更改   返回类型为“ void”。

Future<bool> _onWillPop() {
    Navigator.of(context).pop(false);
    Navigator.pushNamed(context, '/home/config');
  }

@override
  Widget build(BuildContext context) {
    return WillPopScope(
        onWillPop: _onWillPop,

我应该如何纠正?

谢谢。

2 个答案:

答案 0 :(得分:1)

向该方法添加异步。这是异步代码:异步函数同步运行,直到第一个await关键字。这意味着在异步函数体内,第一个await关键字之前的所有同步代码将立即执行。

在此处详细了解:https://dart.dev/codelabs/async-await

Future<bool> _onWillPop() async {
    Navigator.of(context).pop(false);
    Navigator.pushNamed(context, '/home/config');
  } 

onwillpop也必须像这样返回将来的布尔值,这就是为什么您的方法对onwillpop不太有意义

 onWillPop: () => Future.value(false),

答案 1 :(得分:0)

您可以这样使用---->

onWillPop: () {
              Navigator.pushReplacement(
                  context, MaterialPageRoute(builder: (__) => AppointmentList()));
              return Future.value(true);
            }