避免在颤振中在 navigator.push 上重新构建小部件

时间:2020-12-25 18:16:12

标签: flutter flutter-web

当我们使用导航器推送页面时,是否存在一种避免“相同”小部件被重建的方法?

示例:避免在我们从导航器从第 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 会引发侧边栏的问题:每次用户单击链接时,整个小部件显然都会与页面的其余部分一起重建,因为侧边栏是实际页面的一部分。

0 个答案:

没有答案