Bloc 7.2 迁移 - 在流中传递参数
Bloc 7.2 migration - passing parameters inside streams
我目前正在将项目从 Bloc 7.0 迁移到 bloc 7.2
我曾经有一个流,我会在不同的流中 yield*
并且每次传递不同的值作为参数
Stream<CartState> _mapCheckCart({CART_STATUS status}) async*
{...}
但是对于 BloC 7.2,我不得不重写我的流如下并且不知道 - 现在 - 如何传递参数:
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
是一个 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 函数没有事件类型。你应该在那里使用正确的类型。
我目前正在将项目从 Bloc 7.0 迁移到 bloc 7.2
我曾经有一个流,我会在不同的流中 yield*
并且每次传递不同的值作为参数
Stream<CartState> _mapCheckCart({CART_STATUS status}) async*
{...}
但是对于 BloC 7.2,我不得不重写我的流如下并且不知道 - 现在 - 如何传递参数:
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
是一个 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 函数没有事件类型。你应该在那里使用正确的类型。