如何确保功能在下次启动之前完成?颤动 initState()

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

我遇到错误,我认为这与 initState() 函数有关,我正在使用 firebase 并从中加载数据,并且我需要确保

initializeData();
 initializeSorting()
启动之前完成。我怎样才能做到这一点?尝试了异步等待但没有找到解决方案。

class _TasksListState extends State<TasksList> {
  List<Task> tasks = [];
  Set<int> usedIds = Set();
  late String taskTitle;
  late final String user;
  late CollectionReference _collectionRef;
  @override
  void initState() {
    super.initState();
    user = widget.user;
    taskTitle = widget.taskTitle;

    _collectionRef = FirebaseFirestore.instance
        .collection('Users')
        .doc(user)
        .collection('Tasks');

    initializeData();
    initializeSorting();
  }

flutter dart asynchronous async-await initialization
1个回答
-1
投票

你可以通过这样做来实现这一目标,

       void callMe() async{
        await initializeData();
        initializeSorting();
       }

       @override
       void initState() {
       callMe();
       super.initState();
       }

注意:您必须从

Future
函数返回
initializeData()
,因为您不能在 void 函数上使用
await

© www.soinside.com 2019 - 2024. All rights reserved.