我正在使用 go_router 和 Riverpod 开发 Flutter 应用程序,分别用于导航和状态管理。该应用程序有一个小部件,可以显示实时摄像头源,我想“关闭它”并在其他页面堆叠在其顶部时释放摄像头。
这是没有这样逻辑的GoRouter 代码示例。
GoRouter(
routes: [
GoRoute(
path: '/',
builder: (context, state) => CameraWidget(),
routes: [
GoRoute(
path: 'page1',
builder: (context, state) => Page1Screen(),
),
],
),
],
)
Run Code Online (Sandbox Code Playgroud)
我的第一次尝试是在 GoRoute 构建器中添加一些逻辑:
GoRouter(
routes: [
GoRoute(
path: '/',
builder: (context, state) {
if (state.location == "/") {
return CameraWidget();
}
return Center(child: Text("Camera not visible");
},
routes: [
GoRoute(
path: 'page1',
builder: (context, state) => Page1Screen(),
),
],
),
],
)
Run Code Online (Sandbox Code Playgroud)
但这显然不起作用 …