我对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,
我应该如何纠正?
谢谢。
答案 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);
}