Почему этот класс возвращает ошибку StackOverflow?

Я пытался реализовать Card Carousel в своем приложении с библиотекой CardCarousel следующим образом:

...

 List cardList=[
    Item1(),
    Item2(),
    Item3(),
    Item4()
  ];

...

Widget showCardCarousel () {
    return CarouselSlider(
      options: CarouselOptions(height: 200.0),
      items: cardList.map((card){
        return Builder(
        builder: (BuildContext context){
          return Container(
    height:  MediaQuery.of(context).size.height*0.30,
    width:   MediaQuery.of(context).size.width,
    child: Card(
    color: Colors.blueAccent,
    child: card,
    )
          );
    }
        );
    }).toList()
    );
  }

И поместите каждую карту в такой класс:

class Item1 extends _HomePageState{
  
  @override
  Widget build(BuildContext context) {
    return Stack(
      children: <Widget>[
        Card(
          child: Column(
            children: <Widget> [
              InkWell(
              onTap: () {},
          child: Container(
              width: 100.0.w,
              height: 22.77.h,
            decoration: BoxDecoration(
              image: DecorationImage(
                image: AssetImage("assets/images/walk_ill.png"),
                    fit: BoxFit.fill,
                    alignment: Alignment.topCenter,

              ),
            ),
                child: Row(
                  mainAxisAlignment: MainAxisAlignment.spaceBetween,
                  crossAxisAlignment: CrossAxisAlignment.center,
                  children: <Widget>[
                    Column(
                      crossAxisAlignment: CrossAxisAlignment.end,
                      children: [
                        Text(
                          MissionData1[0],
                          overflow: TextOverflow.ellipsis,
                          style: TextStyle(
                            fontWeight: FontWeight.bold,
                            fontFamily: 'Roboto',
                            color: Colors.white,
                            fontSize: 15.0.sp
                          ),
                        ),
                        //Icon(),
                      ]
                    ),
                  ]
                )
          )
      )],
    )),
        ]);
  }
}

Проблема возникает из-за желания отобразить на экране текст MissionData1 [0], полученный из функции в основном классе программы.

class HomePage extends StatefulWidget {
  HomePage({Key key, this.auth, this.userId, this.logoutCallback, this.profile})
      : super(key: key);

  final Auth auth;
  final VoidCallback logoutCallback;
  final String userId;
  final ProfilePage profile;

  @override
  State<StatefulWidget> createState() => new _HomePageState();
}


class _HomePageState extends State<HomePage> {
...
  List<String> MissionData1 = [];
...
Future<void> getMission1() async{
    DocumentSnapshot snap = await widget.auth.MissionRetriever1();
    Map<String,dynamic> data = snap.data();
    setState(() {
      MissionData1.add(data['Q_Category']);
      MissionData1.add(data['Q_Name']);
      MissionData1.add(data['Q_Description']);
      MissionData1.add(data['Q_Score']);
      MissionData1.add(data['Q_Target']);
});
}

Это возвращает мне:

The following StackOverflowError was thrown building RootPage(state: _RootPageState#b44aa):
Stack Overflow

The relevant error-causing widget was: 
  RootPage file:///C:/Users/grond/AndroidStudioProjects/goodgoals_android/lib/main.dart:36:23
When the exception was thrown, this was the stack: 
#0      _LinkedHashMapMixin._getValueOrData (dart:collection-patch/compact_hash.dart:331:3)
#1      Firebase.app (package:firebase_core/src/firebase.dart:70:10100)
#2      FirebaseAuth.instance (package:firebase_auth/src/firebase_auth.dart:37:47)
#3      new _HomePageState (package:goodgoals_android/pages/home_page.dart:57:51)
#4      new _HomePageState (package:goodgoals_android/pages/home_page.dart)

...

Это полный код main.dart:

//Import section
import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:sizer/sizer.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:firebase_core/firebase_core.dart';
import 'package:goodgoals_android/pages/root_page.dart';
import 'package:goodgoals_android/services/asyncservice.dart';


//Run section

void main() async
{
  WidgetsFlutterBinding.ensureInitialized();
  await Firebase.initializeApp();
  SystemChrome.setEnabledSystemUIOverlays([]);
  runApp(new MyApp());
}
class MyApp extends StatelessWidget
{

  @override
  Widget build(BuildContext context)
  {
    return LayoutBuilder(
      builder:(context, constraints) {
      return OrientationBuilder(
      builder: (context, orientation) {
        SizerUtil().init(constraints, orientation);
        return MaterialApp(
            debugShowCheckedModeBanner: false,
            theme: new ThemeData(
              primarySwatch: Colors.blue,
            ),
            home: new RootPage(auth: new Auth()));

      },
        );
  },
      );
  }
}

Не могли бы вы опубликовать точное сообщение об ошибке?

ttyip 01.04.2021 22:06

Добавлена ​​полная ошибка

Matteo Grondona 01.04.2021 22:39

И какой виджет находится в строке 36 main.dart?

ttyip 01.04.2021 22:43

home: new RootPage (auth: new Auth ()));

Matteo Grondona 01.04.2021 22:45

Судя по трассировке стека, это как-то связано с созданием экземпляра FirebaseAuth, можете ли вы включить код для этого бита?

ttyip 01.04.2021 22:52

Добавлен полный код main.dart

Matteo Grondona 01.04.2021 22:55

Извините, мне следовало быть более конкретным: вы создали экземпляр FirebaseAuth в строке 57 home_page.dart? Если да, можете ли вы добавить это вместо этого.

ttyip 01.04.2021 22:57

Ах да, это последняя строка FirebaseAuth _firebaseAuth = FirebaseAuth.instance;

Matteo Grondona 01.04.2021 23:01

Не уверен, связано ли это, но согласно flutterfire docs, вы должны инициализировать FirebaseAuth в виджете.

ttyip 01.04.2021 23:08

Хорошо, я попробовал, но ошибка осталась прежней

Matteo Grondona 01.04.2021 23:16
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
10
36
0

Другие вопросы по теме