각 화면에 직접 주소를 써서 링크를 걸거나, 여러 개의 Navigator widget이 있을 경우 더 나은 기능을 위해 Flutter에선 Go Router 사용을 권장한다.
Go Router 사용을 위해선 우선 go_router 라이브러리를 깔아야 하고, main.dart화면에 아래와 같이 세팅해줘야 한다.
MaterialApp.router(
routerConfig: router
);
final GoRouter router = GoRouter(
routes: <GoRoute>[
GoRoute(
path: '/',
builder: (BuildContext context, GoRouterState state) {
return ScreenA();
},
),
],
);
final GoRouter router = GoRouter(
routes: <GoRoute>[
GoRoute(
path: '/',
builder: (BuildContext context, GoRouterState state) {
return ChangeNotifierProvider(
create: (_) => MainViewModel(),
child: const MainScreen(),
);
},
),
],
);