import 'package:client/pages/home.dart';
import 'package:client/pages/lessons.dart';
import 'package:client/pages/profile.dart';
import 'package:client/pages/study.dart';
import 'package:client/routes/lesson.dart';
import 'package:client/routes/lesson_material.dart';
import 'package:client/routes/login.dart';
import 'package:client/routes/study_session.dart';
import 'package:flutter/material.dart';
import 'package:shared_preferences/shared_preferences.dart';
void main() => runApp(App());
class App extends StatefulWidget {
const App({super.key});
@override
_AppState createState() => _AppState();
}
class _AppState extends State {
bool? _isAuthenticated = false;
bool _isLoading = true;
String _errorMessage = '';
@override
void initState() {
super.initState();
_checkAuthentication();
}
Future checkAuthenticated() async {
final SharedPreferences prefs = await SharedPreferences.getInstance();
final token = prefs.getString('JWT_TOKEN');
return token != null && token.isNotEmpty;
}
Future _checkAuthentication() async {
try {
final isAuthenticated = await checkAuthenticated();
setState(() {
_isAuthenticated = isAuthenticated;
_isLoading = false;
});
} catch (e) {
setState(() {
_errorMessage = 'An error occurred while loading the app.';
_isLoading = false;
});
}
}
@override
Widget build(BuildContext context) {
const backgroundColor = Color(0XFF121212);
if (_isLoading) {
return const MaterialApp(
home: Scaffold(
body: Center(
child: CircularProgressIndicator(
backgroundColor: backgroundColor,
),
),
),
);
}
if (_errorMessage.isNotEmpty) {
return MaterialApp(
home: Scaffold(
body: Container(
decoration: BoxDecoration(color: backgroundColor),
child: Center(
child: Text(
_errorMessage,
style: TextStyle(color: Colors.white),
),
),
),
),
);
}
if (_isAuthenticated == null) {
return const MaterialApp(
home: Scaffold(
body: Center(child: CircularProgressIndicator()),
),
);
}
var initialRoute = _isAuthenticated == true ? '/' : '/login';
return MaterialApp(initialRoute: initialRoute, routes: {
'/login': (context) => LogInWidget(),
'/': (context) => AppWidget(),
'/lesson': (context) => LessonWidget(),
'/lesson/material': (context) => LessonMaterialWidget(),
'/study-session': (context) => StudySessionWidget()
});
}
}
< /code>
Ошибка возникает в строке, где инициализируется приложение. Это проблематичный код: < /p>
return MaterialApp(initialRoute: initialRoute, routes: {
'/login': (context) => LogInWidget(),
'/': (context) => AppWidget(),
'/lesson': (context) => LessonWidget(),
'/lesson/material': (context) => LessonMaterialWidget(),
'/study-session': (context) => StudySessionWidget()
});
Это не код выше этого, так как я подтвердил, что если я удалю initialRoute и сделаю что -то подобное, он работает отлично (но, конечно, теряет функциональность): < Br /> return MaterialApp(
home: LogInWidget()
);
< /code>
Полная информация об ошибке:
Изображение ошибки < /p>
══╡ EXCEPTION CAUGHT BY WIDGETS LIBRARY ╞═══════════════════════════════════════════════════════════
The following _TypeError was thrown building Builder:
Null check operator used on a null value
The relevant error-causing widget was:
MaterialApp
MaterialApp:file:///C:/Users/colew/Videos/gitclones/texttospeechapp/client/lib/main.dart:95:12
When the exception was thrown, this was the stack:
#0 _WidgetsAppState._onGenerateRoute. (package:flutter/src/widgets/app.dart
#1 MaterialPageRoute.buildContent (package:flutter/src/material/page.dart:53:55)
#2 MaterialRouteTransitionMixin.buildPage (package:flutter/src/material/page.dart:139:27)
#3 _ModalScopeState.build.. ( p a c k a g e : f l u t t e r / s r c / w i d g e t s / r o u t e s . d a r t : 1 1 0 7 : 5 3 ) < b r / > # 4 B u i l d e r . b u i l d ( p a c k a g e : f l u t t e r / s r c / w i d g e t s / b a s i c . d a r t : 7 7 1 6 : 4 8 ) < b r / > # 5 S t a t e l e s s E l e m e n t . b u i l d ( p a c k a g e : f l u t t e r / s r c / w i d g e t s / f r a m e w o r k . d a r t : 5 7 0 1 : 4 9 ) < b r / > # 6 C o m p o n e n t E l e m e n t . p e r f o r m R e b u i l d ( p a c k a g e : f l u t t e r / s r c / w i d g e t s / f r a m e w o r k . d a r t : 5 6 3 1 : 1 5 ) < b r / > # 7 E l e m e n t . r e b u i l d ( p a c k a g e : f l u t t e r / s r c / w i d g e t s / f r a m e w o r k . d a r t : 5 3 4 7 : 7 ) < b r / > # 8 S t a t e l e s s E l e m e n t . u p d a t e ( p a c k a g e : f l u t t e r / s r c / w i d g e t s / f r a m e w o r k . d a r t : 5 7 0 7 : 5 ) < b r / > # 9 E l e m e n t . u p d a t e C h i l d ( p a c k a g e : f l u t t e r / s r c / w i d g e t s / f r a m e w o r k . d a r t : 3 9 4 1 : 1 5 ) < b r / > # 1 0 S i n g l e C h i l d R e n d e r O b j e c t E l e m e n t . u p d a t e ( p a c k a g e : f l u t t e r / s r c / w i d g e t s / f r a m e w o r k . d a r t : 6 9 2 1 : 1 4 ) < b r / > # 1 1 E l e m e n t . u p d a t e C h i l d ( p a c k a g e : f l u t t e r / s r c / w i d g e t s / f r a m e w o r k . d a r t : 3 9 4 1 : 1 5 ) < b r / > # 1 2 S i n g l e C h i l d R e n d e r O b j e c t E l e m e n t . u p d a t e ( p a c k a g e : f l u t t e r / s r c / w i d g e t s / f r a m e w o r k . d a r t : 6 9 2 1 : 1 4 ) < b r / > # 1 3 E l e m e n t . u p d a t e C h i l d ( p a c k a g e : f l u t t e r / s r c / w i d g e t s / f r a m e w o r k . d a r t : 3 9 4 1 : 1 5 ) < b r / > # 1 4 C o m p o n e n t E l e m e n t . p e r f o r m R e b u i l d ( p a c k a g e : f l u t t e r / s r c / w i d g e t s / f r a m e w o r k . d a r t : 5 6 5 6 : 1 6 ) < b r / > # 1 5 S t a t e f u l E l e m e n t . p e r f o r m R e b u i l d ( p a c k a g e : f l u t t e r / s r c / w i d g e t s / f r a m e w o r k . d a r t : 5 7 9 4 : 1 1 ) < b r / > # 1 6 E l e m e n t . r e b u i l d ( p a c k a g e : f l u t t e r / s r c / w i d g e t s / f r a m e w o r k . d a r t : 5 3 4 7 : 7 ) < b r / > # 1 7 S t a t e f u l E l e m e n t . u p d a t e ( p a c k a g e : f l u t t e r / s r c / w i d g e t s / f r a m e w o r k . d a r t : 5 8 1 7 : 5 ) < b r / > # 1 8 E l e m e n t . u p d a t e C h i l d ( p a c k a g e : f l u t t e r / s r c / w i d g e t s / f r a m e w o r k . d a r t : 3 9 4 1 : 1 5 ) < b r / > # 1 9 S i n g l e C h i l d R e n d e r O b j e c t E l e m e n t . u p d a t e ( p a c k a g e : f l u t t e r / s r c / w i d g e t s / f r a m e w o r k . d a r t : 6 9 2 1 : 1 4 ) < b r / > # 2 0 E l e m e n t . u p d a t e C h i l d ( p a c k a g e : f l u t t e r / s r c / w i d g e t s / f r a m e w o r k . d a r t : 3 9 4 1 : 1 5 ) < b r / > # 2 1 C o m p o n e n t E l e m e n t . p e r f o r m R e b u i l d ( p a c k a g e : f l u t t e r / s r c / w i d g e t s / f r a m e w o r k . d a r t : 5 6 5 6 : 1 6 ) < b r / > # 2 2 S t a t e f u l E l e m e n t . p e r f o r m R e b u i l d ( p a c k a g e : f l u t t e r / s r c / w i d g e t s / f r a m e w o r k . d a r t : 5 7 9 4 : 1 1 ) < b r / > # 2 3 E l e m e n t . r e b u i l d ( p a c k a g e : f l u t t e r / s r c / w i d g e t s / f r a m e w o r k . d a r t : 5 3 4 7 : 7 ) < b r / > # 2 4 S t a t e f u l E l e m e n t . u p d a t e ( p a c k a g e : f l u t t e r / s r c / w i d g e t s / f r a m e w o r k . d a r t : 5 8 1 7 : 5 ) < b r / > # 2 5 E l e m e n t . u p d a t e C h i l d ( p a c k a g e : f l u t t e r / s r c / w i d g e t s / f r a m e w o r k . d a r t : 3 9 4 1 : 1 5 ) < b r / > # 2 6 S i n g l e C h i l d R e n d e r O b j e c t E l e m e n t . u p d a t e ( p a c k a g e : f l u t t e r / s r c / w i d g e t s / f r a m e w o r k . d a r t : 6 9 2 1 : 1 4 ) < b r / > # 2 7 E l e m e n t . u p d a t e C h i l d ( p a c k a g e : f l u t t e r / s r c / w i d g e t s / f r a m e w o r k . d a r t : 3 9 4 1 : 1 5 ) < b r / > # 2 8 C o m p o n e n t E l e m e n t . p e r f o r m R e b u i l d ( p a c k a g e : f l u t t e r / s r c / w i d g e t s / f r a m e w o r k . d a r t : 5 6 5 6 : 1 6 ) < b r / > # 2 9 S t a t e f u l E l e m e n t . p e r f o r m R e b u i l d ( p a c k a g e : f l u t t e r / s r c / w i d g e t s / f r a m e w o r k . d a r t : 5 7 9 4 : 1 1 ) < b r / > # 3 0 E l e m e n t . r e b u i l d ( p a c k a g e : f l u t t e r / s r c / w i d g e t s / f r a m e w o r k . d a r t : 5 3 4 7 : 7 ) < b r / > # 3 1 S t a t e f u l E l e m e n t . u p d a t e ( p a c k a g e : f l u t t e r / s r c / w i d g e t s / f r a m e w o r k . d a r t : 5 8 1 7 : 5 ) < b r / > # 3 2 E l e m e n t . u p d a t e C h i l d ( p a c k a g e : f l u t t e r / s r c / w i d g e t s / f r a m e w o r k . d a r t : 3 9 4 1 : 1 5 ) < b r / > # 3 3 C o m p o n e n t E l e m e n t . p e r f o r m R e b u i l d ( p a c k a g e : f l u t t e r / s r c / w i d g e t s / f r a m e w o r k . d a r t : 5 6 5 6 : 1 6 ) < b r / > # 3 4 S t a t e f u l E l e m e n t . p e r f o r m R e b u i l d ( p a c k a g e : f l u t t e r / s r c / w i d g e t s / f r a m e w o r k . d a r t : 5 7 9 4 : 1 1 ) < b r / > # 3 5 E l e m e n t . r e b u i l d ( p a c k a g e : f l u t t e r / s r c / w i d g e t s / f r a m e w o r k . d a r t : 5 3 4 7 : 7 ) < b r / > # 3 6 S t a t e f u l E l e m e n t . u p d a t e ( p a c k a g e : f l u t t e r / s r c / w i d g e t s / f r a m e w o r k . d a r t : 5 8 1 7 : 5 ) < b r / > # 3 7 E l e m e n t . u p d a t e C h i l d ( p a c k a g e : f l u t t e r / s r c / w i d g e t s / f r a m e w o r k . d a r t : 3 9 4 1 : 1 5 ) < b r / > # 3 8 S i n g l e C h i l d R e n d e r O b j e c t E l e m e n t . u p d a t e ( p a c k a g e : f l u t t e r / s r c / w i d g e t s / f r a m e w o r k . d a r t : 6 9 2 1 : 1 4 ) < b r / > # 3 9 E l e m e n t . u p d a t e C h i l d ( p a c k a g e : f l u t t e r / s r c / w i d g e t s / f r a m e w o r k . d a r t : 3 9 4 1 : 1 5 ) < b r / > # 4 0 C o m p o n e n t E l e m e n t . p e r f o r m R e b u i l d ( p a c k a g e : f l u t t e r / s r c / w i d g e t s / f r a m e w o r k . d a r t : 5 6 5 6 : 1 6 ) < b r / > # 4 1 S t a t e f u l E l e m e n t . p e r f o r m R e b u i l d ( p a c k a g e : f l u t t e r / s r c / w i d g e t s / f r a m e w o r k . d a r t : 5 7 9 4 : 1 1 ) < b r / > # 4 2 E l e m e n t . r e b u i l d ( p a c k a g e : f l u t t e r / s r c / w i d g e t s / f r a m e w o r k . d a r t : 5 3 4 7 : 7 ) < b r / > # 4 3 S t a t e f u l E l e m e n t . u p d a t e ( p a c k a g e : f l u t t e r / s r c / w i d g e t s / f r a m e w o r k . d a r t : 5 8 1 7 : 5 ) < b r / > # 4 4 E l e m e n t . u p d a t e C h i l d ( p a c k a g e : f l u t t e r / s r c / w i d g e t s / f r a m e w o r k . d a r t : 3 9 4 1 : 1 5 ) < b r / > # 4 5 S i n g l e C h i l d R e n d e r O b j e c t E l e m e n t . u p d a t e ( p a c k a g e : f l u t t e r / s r c / w i d g e t s / f r a m e w o r k . d a r t : 6 9 2 1 : 1 4 ) < b r / > # 4 6 E l e m e n t . u p d a t e C h i l d ( p a c k a g e : f l u t t e r / s r c / w i d g e t s / f r a m e w o r k . d a r t : 3 9 4 1 : 1 5 ) < b r / > # 4 7 C o m p o n e n t E l e m e n t . p e r f o r m R e b u i l d ( p a c k a g e : f l u t t e r / s r c / w i d g e t s / f r a m e w o r k . d a r t : 5 6 5 6 : 1 6 ) < b r / > # 4 8 S t a t e f u l E l e m e n t . p e r f o r m R e b u i l d ( p a c k a g e : f l u t t e r / s r c / w i d g e t s / f r a m e w o r k . d a r t : 5 7 9 4 : 1 1 ) < b r / > # 4 9 E l e m e n t . r e b u i l d ( p a c k a g e : f l u t t e r / s r c / w i d g e t s / f r a m e w o r k . d a r t : 5 3 4 7 : 7 ) < b r / > # 5 0 S t a t e f u l E l e m e n t . u p d a t e ( p a c k a g e : f l u t t e r / s r c / w i d g e t s / f r a m e w o r k . d a r t : 5 8 1 7 : 5 ) < b r / > # 5 1 E l e m e n t . u p d a t e C h i l d ( p a c k a g e : f l u t t e r / s r c / w i d g e t s / f r a m e w o r k . d a r t : 3 9 4 1 : 1 5 ) < b r / > # 5 2 C o m p o n e n t E l e m e n t . p e r f o r m R e b u i l d ( p a c k a g e : f l u t t e r / s r c / w i d g e t s / f r a m e w o r k . d a r t : 5 6 5 6 : 1 6 ) < b r / > # 5 3 S t a t e f u l E l e m e n t . p e r f o r m R e b u i l d ( p a c k a g e : f l u t t e r / s r c / w i d g e t s / f r a m e w o r k . d a r t : 5 7 9 4 : 1 1 ) < b r / > # 5 4 E l e m e n t . r e b u i l d ( p a c k a g e : f l u t t e r / s r c / w i d g e t s / f r a m e w o r k . d a r t : 5 3 4 7 : 7 ) < b r / > # 5 5 S t a t e f u l E l e m e n t . u p d a t e ( p a c k a g e : f l u t t e r / s r c / w i d g e t s / f r a m e w o r k . d a r t : 5 8 1 7 : 5 ) < b r / > # 5 6 E l e m e n t . u p d a t e C h i l d ( p a c k a g e : f l u t t e r / s r c / w i d g e t s / f r a m e w o r k . d a r t : 3 9 4 1 : 1 5 ) < b r / > # 5 7 C o m p o n e n t E l e m e n t . p e r f o r m R e b u i l d ( p a c k a g e : f l u t t e r / s r c / w i d g e t s / f r a m e w o r k . d a r t : 5 6 5 6 : 1 6 ) < b r / > # 5 8 E l e m e n t . r e b u i l d ( p a c k a g e : f l u t t e r / s r c / w i d g e t s / f r a m e w o r k . d a r t : 5 3 4 7 : 7 ) < b r / > # 5 9 S t a t e l e s s E l e m e n t . u p d a t e ( p a c k a g e : f l u t t e r / s r c / w i d g e t s / f r a m e w o r k . d a r t : 5 7 0 7 : 5 ) < b r / > # 6 0 E l e m e n t . u p d a t e C h i l d ( p a c k a g e : f l u t t e r / s r c / w i d g e t s / f r a m e w o r k . d a r t : 3 9 4 1 : 1 5 ) < b r / > # 6 1 C o m p o n e n t E l e m e n t . p e r f o r m R e b u i l d ( p a c k a g e : f l u t t e r / s r c / w i d g e t s / f r a m e w o r k . d a r t : 5 6 5 6 : 1 6 ) < b r / > # 6 2 S t a t e f u l E l e m e n t . p e r f o r m R e b u i l d ( p a c k a g e : f l u t t e r / s r c / w i d g e t s / f r a m e w o r k . d a r t : 5 7 9 4 : 1 1 ) < b r / > # 6 3 E l e m e n t . r e b u i l d ( p a c k a g e : f l u t t e r / s r c / w i d g e t s / f r a m e w o r k . d a r t : 5 3 4 7 : 7 ) < b r / > # 6 4 S t a t e f u l E l e m e n t . u p d a t e ( p a c k a g e : f l u t t e r / s r c / w i d g e t s / f r a m e w o r k . d a r t : 5 8 1 7 : 5 ) < b r / > # 6 5 E l e m e n t . u p d a t e C h i l d ( p a c k a g e : f l u t t e r / s r c / w i d g e t s / f r a m e w o r k . d a r t : 3 9 4 1 : 1 5 ) < b r / > # 6 6 C o m p o n e n t E l e m e n t . p e r f o r m R e b u i l d ( p a c k a g e : f l u t t e r / s r c / w i d g e t s / f r a m e w o r k . d a r t : 5 6 5 6 : 1 6 ) < b r / > # 6 7 S t a t e f u l E l e m e n t . p e r f o r m R e b u i l d ( p a c k a g e : f l u t t e r / s r c / w i d g e t s / f r a m e w o r k . d a r t : 5 7 9 4 : 1 1 ) < b r / > # 6 8 E l e m e n t . r e b u i l d ( p a c k a g e : f l u t t e r / s r c / w i d g e t s / f r a m e w o r k . d a r t : 5 3 4 7 : 7 ) < b r / > # 6 9 S t a t e f u l E l e m e n t . u p d a t e ( p a c k a g e : f l u t t e r / s r c / w i d g e t s / f r a m e w o r k . d a r t : 5 8 1 7 : 5 ) < b r / > # 7 0 E l e m e n t . u p d a t e C h i l d ( p a c k a g e : f l u t t e r / s r c / w i d g e t s / f r a m e w o r k . d a r t : 3 9 4 1 : 1 5 ) < b r / > # 7 1 S i n g l e C h i l d R e n d e r O b j e c t E l e m e n t . u p d a t e ( p a c k a g e : f l u t t e r / s r c / w i d g e t s / f r a m e w o r k . d a r t : 6 9 2 1 : 1 4 ) < b r / > # 7 2 E l e m e n t . u p d a t e C h i l d ( p a c k a g e : f l u t t e r / s r c / w i d g e t s / f r a m e w o r k . d a r t : 3 9 4 1 : 1 5 ) < b r / > # 7 3 C o m p o n e n t E l e m e n t . p e r f o r m R e b u i l d ( p a c k a g e : f l u t t e r / s r c / w i d g e t s / f r a m e w o r k . d a r t : 5 6 5 6 : 1 6 ) < b r / > # 7 4 E l e m e n t . r e b u i l d ( p a c k a g e : f l u t t e r / s r c / w i d g e t s / f r a m e w o r k . d a r t : 5 3 4 7 : 7 ) < b r / > # 7 5 P r o x y E l e m e n t . u p d a t e ( p a c k a g e : f l u t t e r / s r c / w i d g e t s / f r a m e w o r k . d a r t : 5 9 6 0 : 5 ) < b r / > # 7 6 _ I n h e r i t e d N o t i f i e r E l e m e n t . u p d a t e ( p a c k a g e : f l u t t e r / s r c / w i d g e t s / i n h e r i t e d _ n o t i f i e r . d a r t : 1 1 2 : 1 1 ) < b r / > # 7 7 E l e m e n t . u p d a t e C h i l d ( p a c k a g e : f l u t t e r / s r c / w i d g e t s / f r a m e w o r k . d a r t : 3 9 4 1 : 1 5 ) < b r / > # 7 8 S i n g l e C h i l d R e n d e r O b j e c t E l e m e n t . u p d a t e ( p a c k a g e : f l u t t e r / s r c / w i d g e t s / f r a m e w o r k . d a r t : 6 9 2 1 : 1 4 ) < b r / > # 7 9 E l e m e n t . u p d a t e C h i l d ( p a c k a g e : f l u t t e r / s r c / w i d g e t s / f r a m e w o r k . d a r t : 3 9 4 1 : 1 5 ) < b r / > # 8 0 C o m p o n e n t E l e m e n t . p e r f o r m R e b u i l d ( p a c k a g e : f l u t t e r / s r c / w i d g e t s / f r a m e w o r k . d a r t : 5 6 5 6 : 1 6 ) < b r / > # 8 1 S t a t e f u l E l e m e n t .performRebuild (package:flutter/src/widgets/framework.dart:5794:11)
#82 Element.rebuild (package:flutter/src/widgets/framework.dart:5347:7)
#83 StatefulElement.update (package:flutter/src/widgets/framework.dart:5817:5)
#84 Element.updateChild (package:flutter/src/widgets/framework.dart
#85 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5656:16)
#86 Element.rebuild (package:flutter/src/widgets/framework.dart:5347:7)
#87 ProxyElement.update (package:flutter/src/widgets/framework.dart:5960:5)
#88 Element.updateChild (package:flutter/src/widgets/framework.dart
#89 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5656:16)
#90 Element.rebuild (package:flutter/src/widgets/framework.dart:5347:7)
#91 ProxyElement.update (package:flutter/src/widgets/framework.dart:5960:5)
#92 Element.updateChild (package:flutter/src/widgets/framework.dart
#93 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5656:16)
#94 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5794:11)
#95 Element.rebuild (package:flutter/src/widgets/framework.dart:5347:7)
#96 StatefulElement.update (package:flutter/src/widgets/framework.dart:5817:5)
#97 Element.updateChild (package:flutter/src/widgets/framework.dart
#98 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5656:16)
#99 Element.rebuild (package:flutter/src/widgets/framework.dart:5347:7)
#100 StatelessElement.update (package:flutter/src/widgets/framework.dart:5707:5)
#101 Element.updateChild (package:flutter/src/widgets/framework.dart
#102 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5656:16)
#103 Element.rebuild (package:flutter/src/widgets/framework.dart:5347:7)
#104 StatelessElement.update (package:flutter/src/widgets/framework.dart:5707:5)
#105 Element.updateChild (package:flutter/src/widgets/framework.dart
#106 SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6921:14)
#107 Element.updateChild (package:flutter/src/widgets/framework.dart
#108 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5656:16)
#109 Element.rebuild (package:flutter/src/widgets/framework.dart:5347:7)
#110 ProxyElement.update (package:flutter/src/widgets/framework.dart:5960:5)
#111 Element.updateChild (package:flutter/src/widgets/framework.dart
#112 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5656:16)
#113 Element.rebuild (package:flutter/src/widgets/framework.dart:5347:7)
#114 ProxyElement.update (package:flutter/src/widgets/framework.dart:5960:5)
#115 Element.updateChild (package:flutter/src/widgets/framework.dart
#116 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5656:16)
#117 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5794:11)
#118 Element.rebuild (package:flutter/src/widgets/framework.dart:5347:7)
#119 StatefulElement.update (package:flutter/src/widgets/framework.dart:5817:5)
#120 Element.updateChild (package:flutter/src/widgets/framework.dart
#121 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5656:16)
#122 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5794:11)
#123 Element.rebuild (package:flutter/src/widgets/framework.dart:5347:7)
#124 StatefulElement.update (package:flutter/src/widgets/framework.dart:5817:5)
#125 Element.updateChild (package:flutter/src/widgets/framework.dart
#126 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5656:16)
#127 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5794:11)
#128 Element.rebuild (package:flutter/src/widgets/framework.dart:5347:7)
#129 BuildScope._tryRebuild (package:flutter/src/widgets/framework.dart
#130 BuildScope._flushDirtyElements (package:flutter/src/widgets/framework.dart
#131 BuildOwner.buildScope (package:flutter/src/widgets/framework.dart
#132 WidgetsBinding.drawFrame (package:flutter/src/widgets/binding.dart
#133 RendererBinding._handlePersistentFrameCallback (package:flutter/src/rendering/binding.dart:475:5)
#134 SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart
#135 SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart
#136 SchedulerBinding.scheduleWarmUpFrame. (package:flutter/src/scheduler/binding.dart
#137 PlatformDispatcher.scheduleWarmUpFrame. (dart:ui/platform_dispatcher.dart:845:16)
#141 _RawReceivePort._handleMessage (dart:isolate-patch/isolate_patch.dart:184:12)
(elided 3 frames from class _Timer and dart:async-patch)
Подробнее здесь: https://stackoverflow.com/questions/794 ... med-routes