Bonjour à tous,
J'ai un code qui fonctionne mais il n'utilise pas mon système de routage dynamique :
Je charge parfaitement ma page. Problèmes : bien sûr, je souhaite utiliser mon système de routes. Alors je fais ceci :
Code dart : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 Navigator.push( context, MaterialPageRoute( builder: (context) => ChatScreen( chatParams: ChatParams(currentUser.uid, userFriend!), ), ), );
Nom de la route :
Code dart : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 Navigator.pushNamed( context, RouteConsts.chatScreen, arguments: ChatParams(currentUser.uid, userFriend!), );
Le code de la route concernée (extrait) :
Code dart : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 class RouteConsts { ... static const String chatScreen = '/ChatScreen'; ... }
Code dart : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 class RouteGenerator { static Route<dynamic> generate(BuildContext context, RouteSettings settings) { Widget page = Center(child: Text('Route isn't accessible')); switch (settings.name) { case RouteConsts.chatScreen: print("on y est"); if (settings.arguments is ChatParams) { ChatParams chatParams = settings.arguments as ChatParams; print(chatParams); return MaterialPageRoute( builder: (context) => ChatScreen(chatParams: chatParams), ); } else { print("Unexpected arguments type for ChatScreen: ${settings.arguments.runtimeType}"); return MaterialPageRoute(builder: (_) => ItemsListScreen()); // Vous pouvez également retourner null ou une autre route de secours si nécessaire } break; default: page = Center(child: Text('La route n\'est pas accessible')); break; }
Le problème semble venir du break, qui est considéré comme un « deadcode » par l'IDE.
C'est parce que j'utilise un retour de MaterialPageRoute, donc mon switch case ne l'aime pas.
Une idée pour résoudre ça ?
Merci pour votre temps et vos efforts.
Partager