使用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方法。
0
0

Flutter高级进阶实战-仿哔哩哔哩-掌握Flutter高阶技能

一次性掌握Flutter高阶技能+商业级复杂项目架构设计与开发方案

1723 学习 · 870 问题

查看课程