1

我正在使用 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;
 }
4

1 回答 1

0

如果您想在其状态发生变化时重建一个小部件,您需要调用该小部件的 setState()。该变量引用到 State 类,当您调用 setState() 时,Flutter 将通过调用 State 类的 build() 方法重建小部件本身。

于 2021-03-08T06:26:58.533 回答