我的应用程序结构可以是这样的:
home/folder/:fid/player
home/folder/:fid/folder/:fid/player
home/folder/:fid/folder/:fid/folder/:fid/player
具有可以打开其他文件夹的嵌套文件夹(文件夹可以包含在播放器中播放的音频文件)等
这是可能的去路由器?我已经尝试这样做,而不是:
home/folder/:fid/folder2/:f2id/player
但它变得非常混乱。我的路由器目前看起来像这样
final router = GoRouter(
routes: [
GoRoute(
path: HomePath,
builder: (context, state) => HomeWrapperWidget(),
routes: [
GoRoute(
path: 'session/:sid',
routes: [
GoRoute(
path: 'player',
pageBuilder: (context, state) =>
getPlayerMaterialPage(state),
)
],
pageBuilder: (context, state) =>
getSessionOptionsMaterialPage(state),
),
GoRoute(
path: 'folder/:fid',
routes: [
GoRoute(
path: 'folder2/:f2id',
routes: [
GoRoute(
path: 'folder3/:f3id',
pageBuilder: (context, state) => getFolderMaterialPage(state),
),
],
pageBuilder: (context, state) =>
getFolderMaterialPage(state),
),
],
pageBuilder: (context, state) => getFolderMaterialPage(state),
),
...
]),
],
);
1条答案
按热度按时间tjrkku2a1#
它可能只是“基于意见”,不是一个很好的适合一个网站,但我认为这样的事情不应该做的路由器。
路由器用于页面之间的导航。应用程序应该只有一个页面(路由)
folder
,它接受参数fid
,并根据其值显示文件系统中特定文件夹的内容。应该创建一个
fids
堆栈,而不是依赖于go_router
堆栈。