【发布时间】:2021-11-22 20:29:41
【问题描述】:
我正在学习冻结的颤振,我正在尝试从 sqflite 检索数据。我有一个没有集团模式的成就,它工作得很好。但是当我使用 bloc 这样做时,返回值始终为 null!。
这个按钮在被点击时应该会获取数据:
BlocBuilder<DisplayNoteCubit, DisplayNoteState>(
builder: (context, state) {
return MaterialButton(
onPressed: () async {
print( '\n print all Data \n ${state.maybeMap(orElse: () {}, getData: (g) => g.notes)}');
},
child: const Text("Click Me"),
);
},
),
区号为:
final DBHelper _db=DBHelper.instance;
class DisplayNoteCubit extends Cubit<DisplayNoteState> {
DisplayNoteCubit() : super(const DisplayNoteState.initial());
void getData() {
state.maybeMap(
orElse: () {},
getData: (getData) async{
emit(getData.copyWith(notes:await _db.getAllNotesFormDB()));
});
}
}
状态码是:
@freezed
abstract class DisplayNoteState with _$DisplayNoteState {
const factory DisplayNoteState.initial() = Initial;
const factory DisplayNoteState.getData({required List<Map<String, dynamic>> notes}) = GetData;
}
【问题讨论】:
-
您应该在使用 BLoC 时使用 StreamBuilder 小部件。
标签: flutter bloc flutter-bloc freezed flutter-freezed