1

我正在使用 Null -Safety 然后我不断收到此错误,无论我在我的代码中使用快照的任何地方

这是错误

错误

这是我的代码

StreamBuilder(
                          stream: firestore
                              .collection('interest')
                              .doc('${auth.currentUser?.uid}')
                              .snapshots(),
                          builder: (context, snapshot) {
                            if (!snapshot.hasData) {
                              return Center(
                                child: CircularProgressIndicator(),
                              );
                            }
                            return ListView.builder(
                                scrollDirection: Axis.horizontal,
                                itemCount: snapshot.data!['Interest'].length ,
                                itemBuilder: (context, index) {
                                  return Padding(
                                    padding: const EdgeInsets.only(top: 12.0),
                                    child: bottomCardList(
                                      'assets/1 (6).jpeg',
                                      snapshot.data!['Interest'][index]
                                          .toString(),
                                    ),
                                  );
                                });
                          }),

谢谢

4

2 回答 2

1

我通过使用类型来解决这个问题

StreamBuilder<DocumentSnapshot<Map>>(
                          stream: firestore
                              .collection('interest')
                              .doc('${auth.currentUser?.uid}')
                              .snapshots(),
                          builder: (context, snapshot) {
                            if (!snapshot.hasData) {
                              return Center(
                                child: CircularProgressIndicator(),
                              );
                            }
return ListView.builder(
                                scrollDirection: Axis.horizontal,
                                itemCount: snapshot.data!['Interest'].length ,
                                itemBuilder: (context, index) {
                                  return Padding(
                                    padding: const EdgeInsets.only(top: 12.0),
                                    child: bottomCardList(
                                      'assets/1 (6).jpeg',
                                      snapshot.data!['Interest'][index]
                                          .toString(),
                                    ),
                                  );
                                });
                          }),
于 2021-05-21T07:15:52.957 回答
0

有几个解决方案:

  • 为您提供一个类型StreamBuilder

    StreamBuilder<DocumentSnapshot<Map>> (...)
    
  • 为您的第二个参数提供一个类型builder

    builder: (context, AsyncSnapshot<Map> snapshot)
    
  • 用于as向下转换ObjectMap

    (snapshot.data as Map)['key']
    
于 2021-05-21T14:59:20.360 回答