Open huangred opened 4 years ago
在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
应该就可以正常
在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可以返回正确的值