我正在使用帶有凍結庫的Bloc。我需要當用戶打開應用程式時,選擇第一個單選按鈕。我已經創建了一個觀察者Bloc,它告訴我初始狀態和初始事件已經被呼叫,但是當我列印時
print("Print me Please ${state. maybeMap(orElse: () {}, radioClickState:
輸出是NULL。
實作應用層的模塊:
class NoteBloc extends Bloc< NoteEvent, NoteState> {
NoteBloc() : super(const NoteState.initial())。
@override
Stream<NoteState> mapEventToState(
NoteEvent事件。
) async* {
if(state is Initial) {
yield const NoteState.radioClickState(value:1)。
}
}
事件代碼是:
class NoteEvent with _$NoteEvent{
const factory NoteEvent.started() = Started;
const factory NoteEvent.radioClickEvent({required int value} )=
RadioClickEvent。
}
狀態代碼是:
class NoteState with _$NoteState{
const factory NoteState.initial() = Initial;
const factory NoteState.radioClickState({required int value})=
無線電點擊狀態。
}
materialApp里面的代碼是:
home: BlocProvider<NoteBloc>(
lazy: false,
創建。(context) => NoteBloc(),
孩子。const HomePage(),
),
實作廣播組的主頁:
class HomePage extends StatelessWidget {
@override
Widget build(BuildContext context) {
return BlocConsumer<NoteBloc, NoteState> (
聽眾。(context, state) {},
構建者。(context, state) {
print("Print me Please ${state.mayMap(
orElse: () {}, radioClickState: (mstate) => mstate.value)}")。)
return Scaffold(
//body
身體。列(
兒童。[
Radio<int>(
值。1。
groupValue: state.maybeMap(
orElse: () {}, radioClickState: (mstate) => mstate.value)。
onChanged: (int? value) {},
),
Radio<int>(
值。2,
groupValue: state.maybeMap(
orElse: () {}, radioClickState: (mstate) => mstate.value)。
onChanged: (int? value) {},
),
],
},
);
}
}
uj5u.com熱心網友回復:
你的代碼似乎并沒有為該區塊添加任何事件。也許這就是問題所在?
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/309237.html
標籤:
