热重载后状态管理不起作用

时间:2021-03-08 06:14:31

标签: flutter flutter-getx

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

1 个答案:

答案 0 :(得分:0)

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