我正在使用 Obx 来管理我的状态以构建底部导航栏。
return SafeArea(
child: Scaffold(
bottomNavigationBar: BottomNavBar(),
body: Obx (() =>
_getNewSubPage()
)),
);
我在索引更改时调用 _getNewSubPage()。
Widget _getNewSubPage() {
switch (homeController.currentIndex.value) {
case 3:
return new Container(color: Colors.blue);
case 2:
return new Container(
color: Colors.green[100],
);
case 1:
return new WishlistView();
default:
return new CategoryItemListView();
}
}
代码在初始运行和热重启时似乎一切正常,但是当我热重载 _getNewSubPage() 上的视图时,它没有改变。我也尝试过 GetBuilder,但发现了同样的情况。
控制器代码
final currentIndex = 0.obs;
setBottomBarIndex(index) {
print(index);
currentIndex.value = index;
}
答案 0 :(得分:0)
如果您想在状态发生变化时重建小部件,您需要调用小部件的 setState()。该变量引用到 State 类,当您调用 setState() 时,Flutter 将通过调用 State 类的 build() 方法重建小部件本身。