my Navigator.pushNamed
больше не работает, так как я преобразовал свой BottomNavigationBar в новый класс. setState()
работает нормально, поэтому я твердо предполагаю, что проблема с context
. BottomNavigationBar отображается в приложении, но больше не перенаправляет меня на следующую страницу. Я часами пытаюсь понять это ...
Я получаю следующую ошибку: Не удалось найти генератор для маршрута RouteSettings ("...", null) в _WidgetsAppState.
NewBottomNavigationBar class
class NewBottomNavigationBar extends StatefulWidget {
@override
_NewBottomNavigationBarState createState() => _NewBottomNavigationBarState();
}
class _NewBottomNavigationBarState extends State<NewBottomNavigationBar> {
int _selectedTab = 0;
final _selectedTabList = [
TheSlateScreen.id,
Search.id,
LoginScreen.id,
];
@override
Widget build(BuildContext context) {
return BottomNavigationBar(
currentIndex: _selectedTab,
onTap: (int index) {
setState(() {
_selectedTab = index;
});
Navigator.pushNamed(
context,
_selectedTabList[_selectedTab].toString(),
);
},
unselectedItemColor: kSlate,
items: const <BottomNavigationBarItem>[
......
Класс, в котором я использую NewBottomNavigation ()
class TheSlateScreen extends StatefulWidget {
static const String id = 'theslate_screen';
@override
_TheSlateScreenState createState() => _TheSlateScreenState();
}
class _TheSlateScreenState extends State<TheSlateScreen> {
@override
Widget build(BuildContext context) {
screenWidth = MediaQuery.of(context).size.width;
screenHeight = MediaQuery.of(context).size.height;
return MaterialApp(
home: Scaffold(
bottomNavigationBar: NewBottomNavigationBar(),
appBar: AppBar(
leading: null,
actions: <Widget>[
IconButton(
icon: Icon(Icons.close),
.....
Маршруты в моем main.dart
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return ChangeNotifierProvider(
create: (context) => SlateTasks(),
child: MaterialApp(
initialRoute: LoginScreen.id,
routes: {
LoginScreen.id: (context) => LoginScreen(),
RegistrationScreen.id: (context) => RegistrationScreen(),
TheSlateScreen.id: (context) => TheSlateScreen(),
ResetPasswordScreen.id: (context) => ResetPasswordScreen(),
Search.id: (context) => Search(),
},
));