我有一个问题,即流订阅肘部不听肘部的发射状态。这是我如何在代码中实现它们的示例。
这是我想听的肘
class ButtonPressCubit extends Cubit<ButtonState> {
ButtonPressCubit() : super(ButtonNotPressed());
void emitButtonOnePressed() => emit(ButtonOnePressed());
void emitButtonTwoPressed() => emit(ButtonTwoPressed());
}
part of 'internet_cubit.dart';
@immutable
abstract class ButtonState {}
class ButtonNotPressed extends ButtonState {}
class ButtonOnePressed extends ButtonState {}
class ButtonTwoPressed extends ButtonState {}
这是我要订阅的腕尺,我要听的腕尺。
class CounterCubit extends Cubit<CounterState> {
final ButtonPressCubit buttonPressCubit;
StreamSubscription buttonPressStreamSubscription;
CounterCubit({@required this.internetCubit})
: super(CounterState(counterValue: 0, wasIncremented: false)) {
buttonPressStreamSubscription = buttonPressCubit.listen(print);
}
void increment() => emit(
CounterState(counterValue: state.counterValue + 1, wasIncremented: true));
void decrement() => emit(CounterState(
counterValue: state.counterValue - 1, wasIncremented: false));
@override
Future<void> close() {
buttonPressStreamSubscription.cancel();
return super.close();
}
}
之后,我emitButtonOnePressed()
像下面这样调用了 ButtonPressCubit。
MaterialButton(
child: Text('Buton 2'),
onPressed: () {
BlocProvider.of<ButtonPressCubit>(context)
.emitButtonTwoPressed();
},
),
但这不起作用。如何修复它以获得肘部的状态。