Spe*_*eed 7 flutter flutter-navigation
我的应用程序结构可以是这样的:
home/folder/:fid/player
home/folder/:fid/folder/:fid/player
home/folder/:fid/folder/:fid/folder/:fid/player
Run Code Online (Sandbox Code Playgroud)
具有可以打开其他文件夹的嵌套文件夹(文件夹可以包含在播放器中播放的音频文件)等
这可以用 go router 实现吗?我尝试做这样的事情:
home/folder/:fid/folder2/:f2id/player
Run Code Online (Sandbox Code Playgroud)
但它变得非常混乱。我的路由器目前看起来像这样
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),
),
...
]),
],
);
Run Code Online (Sandbox Code Playgroud)
它可能只是“基于意见”,不太适合站点,但我认为这样的事情不应该用路由器来完成。
路由器用于页面之间的导航。应用程序应该有唯一一个页面(路由)folder接受该参数fid并根据其值显示文件系统中特定文件夹的内容。
不应依赖路由堆栈,而应创建go_router路由堆栈。fids
| 归档时间: |
|
| 查看次数: |
4371 次 |
| 最近记录: |