【发布时间】:2021-01-17 10:39:45
【问题描述】:
我有一个 IndexStack 作为主要的导航方式,但是当用户点击后退按钮时,导航会返回到上一个脚手架。
目前我正在使用 WillPopScope(),但我一直收到错误提示...
type '() => void' 不是 type '() => Future' 的子类型
这是代码。
NavPage.dart
class NavPages extends StatefulWidget {
@override
_NavPagesState createState() => _NavPagesState();
}
List<Widget> screens = new List();
List<String> site = new List();
class _NavPagesState extends State<NavPages> {
int _selectedIndex = 0;
@override
Widget build(BuildContext context) {
site.add('..............');
return Consumer<User>(
builder: (context, value, child) {
screens.add(GotKeysSites(
user: value,
departmentClicked: (title) {
if (title.isNotEmpty) {
var pos = site.indexWhere((element) => element == title);
setState(() {
_selectedIndex = pos; //Here the index is updated however, i receive the error commented above.
});
}
},
departmentCallback: (title, departmentsAssigned, startTime, endTime) {
if (title.isNotEmpty && departmentsAssigned.isNotEmpty) {
site.add(title);
}
},
));
return Scaffold(
body: IndexedStack(
index: _selectedIndex,
children: screens,
),
);
},
);
}
}
typedef void ReturnIndex();
以及我调用 ReturnIndex 函数的类
return WillPopScope(
onWillPop: widget.returnIndex,
child: Scaffold(
));
【问题讨论】: