是否有一种方法有几个路径指向同一页面?
给出一些背景:我有一个flutter应用程序,通过Bloc事件处理屏幕。主屏幕可以有多个事件,每个事件显示一个特定的页面。因此,需要有多个路径指向同一个屏幕。
下面是我如何尝试设置路由的一个例子。Build it not work.
@MaterialAutoRouter(
routes: <AutoRoute>[
AutoRoute(path: '/routeA', page: HomeScreen),
AutoRoute(path: '/routeB', page: HomeScreen),
AutoRoute(path: '/routeC', page: HomeScreen),
AutoRoute(path: '/routeD', page: HomeScreen),
]
)
我的解决方案是创建指向同一个小部件的不同类。
在你的例子中,如果你有'HomeScreen'
类,你想创建指向它的类
class HomeScreenRouteTwo extends StatelessWidget {
const HomeScreenRouteTwo({
Key? key,
}) : super(key: key);
@override
Widget build(BuildContext context) {
return HomeScreen('specificData');
}
}
class HomeScreenRouteThree extends StatelessWidget {
const HomeScreenRouteThree({
Key? key,
}) : super(key: key);
@override
Widget build(BuildContext context) {
return HomeScreen('specificData');
}
}
在你的路由器
@MaterialAutoRouter(
routes: <AutoRoute>[
AutoRoute(path: 'routeA', page: HomeScreenRouteTwo),
AutoRoute(path: 'routeB', page: HomeScreenRouteThree),
... etc
]
)
这将对指向您所构建的相同小部件的不同路径产生相同的效果,但使您能够根据发送用户到的路径发送不同的信息。
主屏幕可以有多个事件,每个事件显示一个特定的页面。因此,需要有多个路径指向同一个屏幕。
如果主页有多个事件,处理用户在主页中看到的
如
event 1
show user picture of a cat
event 2
show user picture of a dog.