obx method

Widget obx(
  1. FunStateBuilder stateBuilder, {
  2. FunStateErrorBuilder? onError,
  3. Widget? onLoading,
  4. Widget? onEmpty,
})

重写了原get提供的扩展方法

Implementation

Widget obx(
  FunStateBuilder stateBuilder, {
  FunStateErrorBuilder? onError,
  Widget? onLoading,
  Widget? onEmpty,
}) {
  return SimpleBuilder(builder: (_) {
    if (funStateStatus.isLoading) {
      return onLoading ?? const Center(child: CircularProgressIndicator());
    } else if (funStateStatus.isError) {
      /// onError的返回值如果为空,则返回原widget,适用于[FunStateAction]中的按钮场景
      return onError != null
          ? onError(funStateStatus.error!) ?? stateBuilder()
          : Center(child: Text(funStateStatus.error!.message!));
    } else if (funStateStatus.isEmpty) {
      return onEmpty != null
          ? onEmpty
          : SizedBox.shrink(); // Also can be widget(null); but is risky
    }
    return stateBuilder();
  });
}