当某些屏幕上有一条新消息时,我想向用户显示一个快餐栏“你有一条新消息”,而在某些屏幕上我不想显示它(例如,如果当前路由是 chat/user3 并且新的消息来自 user3,我不想显示小吃栏,因为用户可以看到新消息...)。
我的解决方案目前正在使用命名路由,以及以下代码:
if(showSnackBarRoutes.contains(Get.currentRoute)){
Get.snackbar("You got a new message", Get.currentRoute,duration: Duration(seconds: 3));}
这可以很容易地扩展为根据参数显示或不显示快餐栏(例如,取决于当前用户正在与哪个用户交谈等)。
但是,在我的 MainNavigationScreen(一个有状态的小部件)上,有一个 BottomNavigationBar 带有一个用于更改的选项卡的索引,我想根据该索引显示或不显示(例如,当前的路线信息是不够的)。
我能想到的唯一解决方案是每次选项卡更改时设置的单例 - 但这是一个“丑陋”的解决方案。这样做的原则方法是什么?