我有一个 StatefulWidget,它通过ModalRoute.of(context).addLocalHistoryEntry()
. 当发生某些更改时,我想重置小部件的状态并清除它添加的任何本地历史记录。我没有看到任何 APIModalRoute
来实现这一点。
问问题
404 次
1 回答
0
对我有用的是在第一次构建之前检查当前路线,然后用于Navigator.popUntil()
一次删除所有本地历史记录条目。
@override
void didChangeDependencies() {
initialRoute ??= ModalRoute.of(context);
super.didChangeDependencies();
}
void reset() {
Navigator.of(context).popUntil((route) => route == initialRoute);
}
但是请注意,如果另一个小部件在同一 ModalRoute 上使用本地历史条目,则这些本地历史条目也将被删除。更彻底的解决方案将需要访问最顶层的路由或至少当前 ModalRoute 上的本地历史条目的长度。
于 2019-08-26T16:14:54.507 回答