【问题标题】:New bloc pattern - How it works?新的集团模式 - 它是如何工作的?
【发布时间】:2021-11-24 22:21:36
【问题描述】:

我是 Flutter 和 dart 的初学者。我现在开始学习bloc。拿到这段代码的时候真的没搞懂,它是怎么工作的?

 CounterBloc() : super(0) {
    on<Increment>((event, emit) => emit(state + 1));
  }

  1. 他们是否在调用超级构造函数?
  2. 定义它的构造函数?
  3. 为什么要使用关键字?
  4. 第二行如何工作?

【问题讨论】:

    标签: flutter dart bloc


    【解决方案1】:

    几件事。 First bloc 在这里为您提供一个抽象层,因此它的工作原理并不重要为什么,但您应该知道如何 使用它。

    但是,以下是您问题的答案:

    1. super 构造函数用于 (super(0)) 设置块的初始状态
    2. 你写的是你的 bloc 构造函数的定义是的,不知道这里有什么问题
    3. on 不是关键字。这是bloc 类的method。您可以 ctrl+单击它以查看它是如何定义的,但它不是 dart 关键字。
    4. 第二行基本上注册了给定的回调(在您的情况下为(event, emit) =&gt; emit(state + 1))并将其映射到事件类型,以便在以后使用事件时(myBloc.add(Increment()))块将调用给定的回调。

    我希望它更清楚。不要犹豫,潜入bloc documentation,因为它是一种宝贵的资源(而且非常漂亮:D)

    【讨论】:

    • 第二个问题:是定义counterbloc构造函数还是超类构造函数?
    • "counterbloc 构造函数"。不能从子类更改超类构造函数(对于 dart 中的每个类都是如此)
    • 还有一个……关于第二行。在这里,如果增量事件发生。它将状态加 1。不是吗?给定的回调 = 这里表示增量?
    • Increment 是导致 callback (event, emit) =&gt; emit(state + 1) 被调用的 event。回调会发出一个新的 state (state + 1),因此在将事件添加到 bloc(并触发回调)后 bloc 的状态将发生变化。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-11-09
    • 2013-04-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多