Blog

Keep up to date with the latest news

我们可以在EventHandler之外的区块中使用发射函数吗?

社区首页 >问答首页 >我们可以在EventHandler之外的区块中使用发射函数吗?问我们可以在EventHandler之外的区块中使用发射函数吗?ENStack Overflow用户提问于 2022-11-11 14:04:35回答 1查看 37关注 0票数 0当我在emit之外使用EventHandler函数时,会收到这样的警告吗?

成员'emit‘只能在’package: within /src/lock.dart‘或测试中使用。(文档)

我这样用有什么问题吗?

代码语言:javascript运行复制class HomeBloc extends Bloc {

HomeBloc() : super(HomeInitial()) {

on((event, emit) {

openSampleActivity(event.context);

});

}

void emitState() {

//The member 'emit' can only be used within 'package:bloc/src/bloc.dart' or a test

emit(HomeInitial());

}

}flutterdartbloc关注问题分享EN回答 1推荐最新Stack Overflow用户发布于 2022-11-11 14:41:38

如果将Emitter作为参数传递,则可以实现如下所示:

代码语言:javascript运行复制void emitState(Emitter emit) {

emit(HomeInitial());

}然后,您可以以这种方式调用emit方法。

代码语言:javascript运行复制on((event, emit) {

emitState(emit);

});你也可以这么做

代码语言:javascript运行复制HomeBloc() : super(HomeInitial()) {

on(_onOpenActivityEvent);

}

void _onOpenActivityEvent(OpenActivityEvent event, Emitter emit) {

emit(HomeInitial());

}收藏分享票数 0EN页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持原文链接:https://stackoverflow.com/questions/74403654

复制相关文章