ファイアストアから子を取得するフラッターのクパチーノピッカーがあります。
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) を画面に戻します。私はこれを何週間も続けてきましたが、成功していません。助けてください。
ありがとう。