RangeError (index): недопустимое значение: не в диапазоне 0..5 включительно: 6: Flutter SliverChildBuilderDelegate - PullRequest
0 голосов
/ 04 июня 2019

Я использовал firestore с flutter SliverChildBuilderDelegate. SliverChildBuilderDelegate для построения бесконечного индекса.но у моего firestore есть только 6 документов.в результате

ошибка RangeError (index): недопустимое значение: не в диапазоне 0..5 включительно: 7

как я могу решить эту проблему?

В SliverChildBuilderDelegate есть свойство childCount, но оно не работает, также попытался выполнить смещение.

new SliverFixedExtentList(
       itemExtent: 80.0,

delegate: new SliverChildBuilderDelegate(

(context, index ,{childCount:5}) => StreamBuilder<QuerySnapshot>(

stream: Firestore.instance.collection('books').orderBy('open_date')
.snapshots(),

builder: (context, snapshot) {

                        print("\n\n\n\n "+snapshot.data.documents.length.toString());
                        print("\n\n\n\n\n\n");
                      if (!snapshot.hasData) return CircularProgressIndicator();
                      else if(index<snapshot.data.documents.length){
                      return Card(
                        child: ListTile(

                          leading: child1,
                          title: Text(snapshot.data.documents[index]['title']),
                          subtitle:
                              Text(snapshot.data.documents[index]['result']),
                        ),
                      );
                      }else{
                      return Text("data");}
                    },
                  ),
            ),
          ),

Извините, что вставил неверно отформатированный код.Я много пробовал, но, возможно, стек не поддерживает флаттер

1 Ответ

1 голос
/ 11 июля 2019

Попробуйте удалить childCount из аргументов SliverChildBuilderDelegate.Вместо этого поместите childCount непосредственно после блока кода для компоновщика.(вот пример для просмотра: https://github.com/flutter/flutter/blob/master/examples/flutter_gallery/lib/demo/pesto_demo.dart)

    new SliverFixedExtentList(
       itemExtent: 80.0,

    delegate: new SliverChildBuilderDelegate(

    (context, index) => StreamBuilder<QuerySnapshot>(

    stream: Firestore.instance.collection('books').orderBy('open_date')
    .snapshots(),

    builder: (context, snapshot) {

                        print("\n\n\n\n "+snapshot.data.documents.length.toString());
                        print("\n\n\n\n\n\n");
                      if (!snapshot.hasData) return CircularProgressIndicator();
                      else if(index<snapshot.data.documents.length){
                      return Card(
                        child: ListTile(

                          leading: child1,
                          title: Text(snapshot.data.documents[index]['title']),
                          subtitle:
                              Text(snapshot.data.documents[index]['result']),
                        ),
                      );
                      }else{
                      return Text("data");}
                    },
                     childCount:5,
                  ),
            ),
          ),
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...