0

ファイアストアから子を取得するフラッターのクパチーノピッカーがあります。

    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) を画面に戻します。私はこれを何週間も続けてきましたが、成功していません。助けてください。

ありがとう。

4

0 に答える 0