fish-redux icon indicating copy to clipboard operation
fish-redux copied to clipboard

路由的问题

Open huangred opened this issue 4 years ago • 1 comments

在createApp()中指定了pages,但在MaterialApp中未指定routes,当从页面A=>B=>C=>D的时候,如果在D页面使用 pushNamedAndRemoveUntil(‘PageC’, ModalRoute.withName(‘PageB’), arguments: arguments)时,ModalRoute.withName(‘PageB’)始终为false,导致PageC成为route中为一个的一个page,在后退就黑屏了。

fish-redux能不能routes.buildPage的时候处理一下MaterialApp中的routes,使ModalRoute.withName可以返回正确的值

huangred avatar Apr 22 '20 04:04 huangred

在createApp()中指定了pages,但在MaterialApp中未指定routes,当从页面A=>B=>C=>D的时候,如果在D页面使用 pushNamedAndRemoveUntil(‘PageC’, ModalRoute.withName(‘PageB’), arguments: arguments)时,ModalRoute.withName(‘PageB’)始终为false,导致PageC成为route中为一个的一个page,在后退就黑屏了。

fish-redux能不能routes.buildPage的时候处理一下MaterialApp中的routes,使ModalRoute.withName可以返回正确的值

官方的example写法中其实是少传了一个参数的

  return MaterialApp(
    title: 'Fluro',
    debugShowCheckedModeBanner: false,
    theme: ThemeData(
      primarySwatch: Colors.blue,
    ),
    home: routes.buildPage('todo_list', null),
    onGenerateRoute: (RouteSettings settings) {
      return MaterialPageRoute<Object>(builder: (BuildContext context) {
        return routes.buildPage(settings.name, settings.arguments);
      });
    },
  );

改为

  return MaterialApp(
    title: 'Fluro',
    debugShowCheckedModeBanner: false,
    theme: ThemeData(
      primarySwatch: Colors.blue,
    ),
    home: routes.buildPage('todo_list', null),
    onGenerateRoute: (RouteSettings settings) {
      return MaterialPageRoute<Object>(builder: (BuildContext context) {
        return routes.buildPage(settings.name, settings.arguments);
      },
      settings: settings);
    },
  );

这个时候调用pushNamedAndRemoveUntil 应该就可以正常

owoeo avatar May 22 '20 02:05 owoeo