当我们使用导航器推送页面时,是否存在一种避免“相同”小部件被重建的方法?
示例:避免在我们从导航器从第 1 页推送到第 2 页时重建 MyFancyWidget()?
//page 1
return Scaffold(
body: Row([
MyFancyWidget(),
/*Remaining part of the first page*/
])
);
//page 2
return Scaffold(
body: Row([
MyFancyWidget(),
/*Remaining part of the second page*/
])
);
用例:
我在 Flutter web 中构建侧边栏时遇到了问题。 由于应用程序内部的导航是一个特殊问题,因此每次单击侧栏中页面的链接时,我都需要使用 navigator.pushNamed。之所以这样做,是因为如果用户在尝试使用浏览器的“后退按钮”导航时单击重新加载按钮或加载前一个页面,我需要我的网站打开该特定页面。 但是,使用 pushNamed 会引发侧边栏的问题:每次用户单击链接时,整个小部件显然都会与页面的其余部分一起重建,因为侧边栏是实际页面的一部分。