如何等待功能完成

如何等待功能完成

我有两个名为getAllContacts()的函数,这些函数将从mobile和upDateAllContacts()获取所有联系人,后者使用联系人号码创建小部件,并将其附加到名为registerdUsers = []的列表中,并在列中使用registedUser小部件。
问题是除非我导航到另一个屏幕然后返回,否则小部件不可见。

List registeredUsers =  <Widget>[];
class  ...{
   ...
     @override
     initState() {
     getAllContacts() //It greps all the contacts from mobile
     upDateAllContacts()//contacts to create widgets which goes in to registeredUsers list
    super.initState();
  }

  @override
  Widget build(BuildContext context) {
   ...
     column {
       children :registeredUsers,
     }

   ...
  }



}

最佳答案

使您的函数getAllContacts返回Future并使用 FutureBuilder 呈现小部件。每当Future的状态更改或发生错误时,FutureBuilder都会将其称为 build 回调,该回调返回适当的小部件。

该代码将如下所示:

FutureBuilder(
    // Assuming loadAllContacts returns Future<Contacts>
    future: loadAllContacts(),

    // This callback will be called whenever future's state changes
    builder: (BuildContext context, AsyncSnapshot<Contacts> snapshot) {
        if (snapshot.hasData) {
            return ListView(…);
        } else if (snapshot.hasError) {
            return Text('Failed to load the contacts');
        } else {
            return Text('Loading the contacts');
        }
    },
),

关于flutter - 如何等待功能完成?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/62231894/

10-10 20:00