Bonjour à tous,

J'ai un code qui fonctionne mais il n'utilise pas mon système de routage dynamique :

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!),
              ),
            ),
          );
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
          Navigator.pushNamed(
            context,
            RouteConsts.chatScreen,
            arguments: ChatParams(currentUser.uid, userFriend!),
          );
Nom de la route :
Code dart : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
class RouteConsts {
  ...
  static const String chatScreen = '/ChatScreen';
  ...
}
Le code de la route concernée (extrait) :
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.