我目前正在将一个项目从 Bloc 7.0 迁移到 bloc 7.2
我曾经有一个流,我会yield*
在不同的流中并每次传递不同的值作为参数
Stream<CartState> _mapCheckCart({CART_STATUS status}) async*
{...}
但对于 BloC 7.2,我必须按如下方式重写我的流,但我不知道 -now- 如何传入参数:
Future<void> _onCheckCart(event, Emitter<CartState> emit) async {
...
emit(state.checkCartSuccess(
amounts: cart.amounts,
status: status, // I need to pass in the status here
));
...
}
理想情况下我想使用_onCheckCart
像这样
on<CheckCart>(
_onCheckCart(statusOnSuccess: CART_STATUS.CHECK_CART_SUCCESS));
on<CheckCustomerInformation>(_onCheckCart(
statusOnSuccess: CART_STATUS.CHECK_CUSTOMER_INFORMATION_SUCCESS));
CART_STATUS
is an enum
enum CART_STATUS {LOADING,READY,CHECK_CART_IN_PROGRESS, ...}
定义:
Future<void> _onCheckCart(event, Emitter<CartState> emit, CART_STATUS status) async {
呼叫(或更确切地说:呼叫登记):
on<CheckCart>((ev, em) =>
_onCheckCart(ev, em, CART_STATUS.CHECK_CART_SUCCESS));
on<CheckCustomerInformation>((ev, em) =>
_onCheckCart(ev, em, CART_STATUS.CHECK_CUSTOMER_INFORMATION_SUCCESS));
您的 _onCheckCart 函数没有事件类型。您应该在那里使用正确的类型。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)