>我有一个底部导航栏,可以在同一屏幕中的类之间导航
我的主要构建小部件:
Widget build(BuildContext context) {
return SafeArea(
top: false,
child: Scaffold(
body: PageStorage(
child: Stack(
children: <Widget>[currentPage, bottomBar()],
),
bucket: bucket,
),
),
);
}
我的底部栏
Widget bottomBar() {
return Column(
children: <Widget>[
const Expanded(
child: SizedBox(),
),
BottomBarView(
tabIconsList: tabIconsList,
addClick: () {},
changeIndex: (int index) {
setState(() {
currentTab = index;
currentPage = pages[index];
print(pages[index]);
print(currentTab);
});
},
),
],
);
}
底部栏工作正常,但每次我按下按钮时,它都会一遍又一遍地重建相同的类 即使我正在使用存储桶和页面存储如何停止重建类?
好吧,你真的没有办法阻止重建。我将向您指出这个答案,因为我认为这是最好的答案。
如何处理不需要的小部件构建?
小部件可以随时出于任何原因重建。如果不希望对性能造成严重影响,请将逻辑排除在生成方法之外,因为生成方法应仅用于显示 UI。BLoC 模式非常擅长分离显示和逻辑。
所以基本上,保持你的构建方法干净。