我有一个 flutter 上的 cupertino 选择器,它可以从 firestore 获取它的孩子。
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);
}
并使用我的 UserData 模型将其转换为 List:
List<UserData> _userListFromSnapshot(QuerySnapshot snapshot) {
return snapshot.documents.map((doc) {
return UserData(
name: doc.data['name'] ?? '',
userId: doc.documentID ?? '');
}).toList();
}
问题是当我使用选择器导航到页面时,我在选择器上看不到任何数据。但是,当我进行热刷新时,数据会显示出来。
当我在下一页时,选择器还会显示数据并使用选择器将 Navigator.pop(context) 返回到屏幕。我已经为此工作了几个星期,但没有成功。请帮忙。
谢谢。