在 Bloc 7.2 中,传递参数到流中的方式与先前版本有所不同。以下是如何在流中传递参数的示例:
首先,在事件类中定义需要传递的参数:
class EventWithParam extends Equatable {
final int param;
EventWithParam(this.param);
@override
List
然后,在 Bloc 中使用 StreamTransformer
将事件转换为状态的流,并且将参数传递给转换器:
class myBloc extends Bloc {
myBloc() : super(MyState());
@override
Stream mapEventToState(MyEvent event) {
if (event is EventWithParam) {
final param = event.param;
return _myMethod(param).map((result) => MyState(result));
}
return super.mapEventToState(event);
}
Stream _myMethod(int param) async* {
yield MyResult(param);
}
}
在这个示例中,EventWithParam
传递整数参数到 mapEventToState
中。这个函数将参数传递给 _myMethod
,为这个方法生成一个结果流,并将结果传递给 MyState
。
使用这种方法,可以在流中传递任何类型的参数。