在 Flutter 中使用 GetX 响应式显示 Snackbar
Show Snackbar Reactively Using GetX in Flutter
这是场景
- 拨打 API 电话
- 响应为空
- 需要从 GetX 控制器通过 Snackbar 向用户显示 'No results found' 消息
- 但我不想将视图实例 class 传递给控制器以显示 Snackbar。
- 是否有任何 Getx 小部件在控制器中侦听 msg.obs 值并在视图中执行 Get.Snackbar() 代码
你可以使用下面的代码在 flutter 中显示 snackbar
Get.snackbar(
"Hello",
"Thank You!",
snackPosition: SnackPosition.TOP,
colorText: Colors.white,
borderRadius: 10,
backgroundColor: AppColors.toastGreenColor ,
icon: Image.asset(
"assets/images/success_toast.png",
height: 25,
width: 25,
color: Colors.white,
),
);
据我所知,我认为与 BLoC 不同的是,GetX 中没有 BlocListener
或 BlocConsumer
。但是您可以使用 RxWorker
来实现这一点:
ever(someObservable, (){
doSomething(); // show dialog, snackbar, navigate to other pages
}
请记住,您需要将其放在 build
方法的 return
之前。
这是场景
- 拨打 API 电话
- 响应为空
- 需要从 GetX 控制器通过 Snackbar 向用户显示 'No results found' 消息
- 但我不想将视图实例 class 传递给控制器以显示 Snackbar。
- 是否有任何 Getx 小部件在控制器中侦听 msg.obs 值并在视图中执行 Get.Snackbar() 代码
你可以使用下面的代码在 flutter 中显示 snackbar
Get.snackbar(
"Hello",
"Thank You!",
snackPosition: SnackPosition.TOP,
colorText: Colors.white,
borderRadius: 10,
backgroundColor: AppColors.toastGreenColor ,
icon: Image.asset(
"assets/images/success_toast.png",
height: 25,
width: 25,
color: Colors.white,
),
);
据我所知,我认为与 BLoC 不同的是,GetX 中没有 BlocListener
或 BlocConsumer
。但是您可以使用 RxWorker
来实现这一点:
ever(someObservable, (){
doSomething(); // show dialog, snackbar, navigate to other pages
}
请记住,您需要将其放在 build
方法的 return
之前。