使用go_route作为路由管理,使用context.goNamed切换路由时,历史页面的build方法也被触发
来源:5-2 如何有效的学习Navigator 2【学习锦囊】

慕哥1324081
2023-06-14
使用go_route作为路由管理,使用context.goNamed切换路由时,历史页面的build方法也触发了,有什么解决方式吗
写回答
1回答
-
CrazyCodeBoy
2023-06-15
这种问题可能是由于Flutter页面生命周期的原因造成的。
解决这个问题,一般可以有以下思路:
判断页面状态:你可以通过判断页面是否在前台来决定是否需要执行build方法。例如,可以使用AutomaticKeepAliveClientMixin和WidgetsBindingObserver。AutomaticKeepAliveClientMixin可以保持页面状态,防止页面被销毁;WidgetsBindingObserver可以监听App生命周期,通过这个监听器,我们可以知道页面是否在前台,从而决定是否需要执行build方法。00
相似问题