Flutter bloc - 从DB异步获取数据。

问题描述 投票:-1回答:1

我正在使用BLoC架构制作一个应用程序,使用的是 flutter_bloc 包,但我需要从数据库中获取数据,这是异步的,这意味着我不能用数据库中的数据初始化 BLoC。有什么方法可以做到这一点吗?我的 BLoC 类文本是

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) {
  }
}

我知道这很类似于 这个问题但该问题的答案没有任何代码片段,这将是非常有用的。

flutter bloc
1个回答
0
投票

创建一个单独的异步函数,并从initState()中调用if.这是我的代码,你可以根据使用情况调用你的方法。

  @override
  HomeState get initialState {
    _checkLocationSettings();
    return InitialHomeState();
  }



_checkLocationSettings() async {
locationUpdateSetting = await repository.isLocationUpdateOn();}
© www.soinside.com 2019 - 2024. All rights reserved.