Flutter bloc - 从数据库异步获取数据
Flutter bloc - Getting data from DB asynchronously
我正在使用 flutter_bloc
包使用 BLoC 架构制作应用程序,但我需要从数据库中获取数据,这是异步的,这意味着我无法使用数据库中的数据初始化 BLoC .有什么办法可以做到这一点?我的 BLoC class 文字是
import 'package:countdown/database/utils.dart';
import 'package:countdown/events/countdown_event.dart';
import 'package:countdown/models/countdown.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
class HomeBloc extends Bloc<CountdownEvent, List<Countdown>> {
@override
// TODO: implement initialState
List<Countdown> get initialState => DatabaseUtils.getCountdowns();
@override
Stream<List<Countdown>> mapEventToState(CountdownEvent event) {
}
}
我知道这与 非常相似,但该问题的答案没有任何非常有用的代码片段。
创建一个单独的异步函数并从 initState() 调用 if。这是我的代码,你可以根据用途调用你的方法。
@override
HomeState get initialState {
_checkLocationSettings();
return InitialHomeState();
}
_checkLocationSettings() async {
locationUpdateSetting = await repository.isLocationUpdateOn();}
我正在使用 flutter_bloc
包使用 BLoC 架构制作应用程序,但我需要从数据库中获取数据,这是异步的,这意味着我无法使用数据库中的数据初始化 BLoC .有什么办法可以做到这一点?我的 BLoC class 文字是
import 'package:countdown/database/utils.dart';
import 'package:countdown/events/countdown_event.dart';
import 'package:countdown/models/countdown.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
class HomeBloc extends Bloc<CountdownEvent, List<Countdown>> {
@override
// TODO: implement initialState
List<Countdown> get initialState => DatabaseUtils.getCountdowns();
@override
Stream<List<Countdown>> mapEventToState(CountdownEvent event) {
}
}
我知道这与
创建一个单独的异步函数并从 initState() 调用 if。这是我的代码,你可以根据用途调用你的方法。
@override
HomeState get initialState {
_checkLocationSettings();
return InitialHomeState();
}
_checkLocationSettings() async {
locationUpdateSetting = await repository.isLocationUpdateOn();}