在Navigator中,我们可以使用.then
。
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => XyzScreen(),
),
).then((value) => _someFuncion());
那么在go_router
中有没有实现相同的方法呢?
在Navigator中,我们可以使用.then
。
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => XyzScreen(),
),
).then((value) => _someFuncion());
那么在go_router
中有没有实现相同的方法呢?
请参考https://github.com/flutter/flutter/issues/99663,
目前似乎主要的go_router功能还不支持。主要是因为它与浏览器不兼容。虽然项目中有修复此问题的支持,但其优先级较低。
https://dev59.com/i1EG5IYBdhLWcg3wLFwk#73962826
在这里,您可以找到一种解决方法,即在路由更改时注册侦听器。
因此,您可以忽略其他页面(甚至该页面的子路由),在返回此页面时调用回调+取消注册侦听器,并在其他情况下取消注册侦听器或类似操作。