为了学习群体,我想出了这个问题.我有一些代码,在其中我生成了一些带有BLoC模式的按钮.然而,我不知道如何用dispatch(event)方法更新特定的按钮属性.如何将参数传递给事件ChangeSomeValues??

使用集团的部分

BlocBuilder(
  bloc: myBloc,
  builder: (context, state) {
    return ListView.builder(
      itemCount: state.buttonList.length,
      itemBuilder: (context, index) {
        return MyButton(
          label: buttonList[index].label,
          value: buttonList[index].value,
          onPressed: myBloc.dispatch(ChangeSomeValues()),
        );
      }
    );
  }
),

MyBloc.飞奔

class MyBloc extends Bloc<MyEvent, MyState> {

  @override
  Stream<MyState> mapEventToState(MyEvent event) async* {
    if (event is ChangeSomeValues) {
      ... modify specific parameters in list here ...
      yield MyState1(modifiedList);
    }
  }
}

我知道如何使用事件更改值,但我找不到如何使用这种通用实现编辑List中的特定参数.

推荐答案

您的活动代码:

class ChangeSomeValues extends MyEvent {
  final int data;

  ChangeSomeValues(this.data);
}

发送时间为:myBloc.dispatch(ChangeSomeValues(15))

该集团

class MyBloc extends Bloc<MyEvent, MyState> {

  @override
  Stream<MyState> mapEventToState(MyEvent event) async* {
    if (event is ChangeSomeValues) {
      print("here's the data : ${event.data}");
    }
  }
}

Dart相关问答推荐

在Flutter中在 initstate() 之前调用了dependOnInheritedElement()

播放和暂停 Flutter 动画

Flutter - 在 null 上调用了 getter 'length'

结合freezed和hive

Flutter DatePicker 没有day选项

如何在Flatter中导入intl库?

Dart / Flutter 错误:没有为类Logger定义toStringDeep

如何在 GridView (Flutter) 中进行分页

将JSON映射到类对象

判断Dart中是否提供了可选参数

Flutter 在 main 中读取共享首选项,然后决定哪个启动页面?

Flutter 中 ChangeNotifier 的构建器小部件

可选参数的默认值

Dart 工厂构造函数 - 它与const构造函数有何不同

用默认值初始化成员的最优雅的方法

在 Dart 中,将动态转换为给定类型或返回 null 的语法好方法?

从 Dart 应用访问 pubspec.yaml 属性

Dart 脚本会在浏览器中本地运行吗?

如何在 base64 中编码 Dart 字符串?

Dart null / false / empty checking:如何写这个更短?