본문 바로가기

Flutter/07 State - Provider

[Flutter] Provider Access - generated route

오늘은 Provider 적용후 Generated route 를 통한 화면 전환시 데이터 공유에 대해서 정리했습니다.

개발환경 : 윈도우11, 안드로이드 스튜디오(Arctic Fox 2020.3.1 Patch 4), flutter 2.10

소스코드 - Release 21_Provider_Access_generated_route · mike-bskim/provider_overview (github.com)

 

Release 21_Provider_Access_generated_route · mike-bskim/provider_overview

 

github.com

 

기본구조는 Named route 와 비슷하다. routes 대신에 onGenerateRoute 를 추가하면 된다.

 

// routes: {
//   '/': (context) => ChangeNotifierProvider.value(
//         value: _counter,
//         child: const MyHomePage(),
//       ),
//   '/counter': (context) => ChangeNotifierProvider.value(
//         value: _counter,
//         child: const ShowMeCounter(),
//       ),
// },
onGenerateRoute: (RouteSettings settings) {
  switch (settings.name) {
    case '/':
      return MaterialPageRoute(
        builder: (context) => ChangeNotifierProvider.value(
          value: _counter,
          child: const MyHomePage(),
        ),
      );
    case '/counter':
      return MaterialPageRoute(
        builder: (context) => ChangeNotifierProvider.value(
          value: _counter,
          child: const ShowMeCounter(),
        ),
      );
    default:
      return null;
  }
},