Firebase 我的cupertino Picker不会显示孩子,除非我热刷新

Firebase 我的cupertino Picker不会显示孩子,除非我热刷新,firebase,flutter,flutter-cupertino,cupertinopicker,Firebase,Flutter,Flutter Cupertino,Cupertinopicker,我在弗利特上有一个库比蒂诺采摘器,它从火炉店取孩子 return CupertinoPicker( itemExtent: 50, onSelectedItemChanged: (int index) { setState(() { _selectedUserId = user[index].userId; _selectedUserName = user[index].name; IosUserDropdownList.selecte

我在弗利特上有一个库比蒂诺采摘器,它从火炉店取孩子

    return CupertinoPicker(
  itemExtent: 50,
  onSelectedItemChanged: (int index) {
    setState(() {
      _selectedUserId = user[index].userId;
      _selectedUserName = user[index].name;
      IosUserDropdownList.selectedUserId = user[index].userId;
      IosUserDropdownList.selectedUserName = user[index].name;
    });
    print(_selectedUserId);
    print(_selectedUserName);
  },
  children: user.map((user) {
    return CupertinoButton(
      onPressed: () {},
      child: Text(
        user.name,
        style: TextStyle(color: CupertinoColors.activeBlue),
      ),
    );
  }).toList(),
);
以下是我从Firestore获取用户的方式:

  Stream<List<UserData>> get users {
    return userCollection.snapshots().map(_userListFromSnapshot);
  }
Stream获取用户{
返回userCollection.snapshots().map(_userListFromSnapshot);
}
并使用my UserData模型将其转换为列表:

  List<UserData> _userListFromSnapshot(QuerySnapshot snapshot) {
    return snapshot.documents.map((doc) {
      return UserData(
          name: doc.data['name'] ?? '',
          userId: doc.documentID ?? '');
    }).toList();
  }
List\u userListFromSnapshot(QuerySnapshot快照){
返回snapshot.documents.map((doc){
返回用户数据(
名称:文件数据['name']??“,
userId:doc.documentID???”;
}).toList();
}
问题是,当我使用选择器导航到页面时,我看不到选择器上的任何数据。但是,当我进行热刷新时,数据会显示出来

当我在下一页时,选择器还会显示数据,并使用选择器将Navigator.pop(上下文)返回到屏幕。我已经做了几个星期了,但没有成功。请帮忙


谢谢。

直接在小部件树上生成用户列表有点奇怪。为什么你不在其他地方生成它并保持你的小部件无状态?我对这一点不熟悉。我该怎么做?你怎么把孩子们从firestore弄来的?我怀疑你没有使用wait在这种情况下我让孩子们使用Streams。类似这样的内容:Stream get users{return userCollection.snapshots().map(_userListFromSnapshot);}