【问题标题】:Calling function after calling super constructor in bloc constructor在 bloc 构造函数中调用超级构造函数后调用函数
【发布时间】:2021-11-23 05:57:34
【问题描述】:

我正在观看关于 bloc 和流订阅的 tutorial,我注意到了这段代码。在超级构造函数之后,他调用了一个函数。

class InternetCubit extends Cubit<InternetState> {
  final Connectivity connectivity;
  late StreamSubscription connectivityStreamSubscription;

  InternetCubit({required this.connectivity}) : super(InternetLoading()) {
    connectivityStreamSubscription = connectivity.onConnectivityChanged.listen((ConnectivityResult connectivityResult) {
      if(connectivityResult == ConnectivityResult.wifi){
        emitInternetConnected(ConnectionType.Wifi);
      }
      else if(connectivityResult == ConnectivityResult.mobile){
        emitInternetConnected(ConnectionType.Mobile);
      }else if(connectivityResult == ConnectivityResult.none){
        emitDisconnected();
      }
    });
  }
}

在调用超级构造函数之后,谁能解释一下这个函数是什么?它有什么作用?

【问题讨论】:

    标签: flutter bloc


    【解决方案1】:

    谁能给我解释一下 super 之后这个函数是什么 构造函数被调用了吗?

    这不是一个函数,它只是一个构造函数的主体:https://dart.dev/guides/language/language-tour#constructors

    它有什么作用?

    在这种情况下,InternetCubit 初始化期间,cubit 订阅 connectivity.onConnectivityChanged 流事件。然后,在每个connectivityResult 事件上,都会触发相应的cubit 状态变化。当您的 cubit 状态应该在自定义 cubit 事件(例如,当您从 UI 调用 cubit 方法时)以及其他事件源(例如connectivity 包提供的互联网连接状态。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-07-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多