본문 바로가기

[Mobile]/[Flutter]

[Flutter] Getx로 전역 Provider 설정

반응형

상태 변화나 다른 위젯간의 데이터를 전달할때 생성자로 매번 전달해줘야 할까...?

그건 아니다. 전역으로 Provider에 값을 넣고, 필요한 위젯에서 꺼내어 쓸수있다.

로컬 데이터베이스는 아니고. 앱이 시작할때 넣어놓고 변경 및 사용이 가능한 느낌이다.

대신 , 앱을 끄면 사라지는 데이터임은 명심해야한다.

 

 

로그인 사용자에 대한 정보, 인가가 끝난 userId에 대한 정보를 해당 Provider에서 관리를 해야겠다

어렵지 않다.

 

https://pub.dev/packages/get

 

get | Flutter Package

Open screens/snackbars/dialogs without context, manage states and inject dependencies easily with GetX.

pub.dev

 

공식문서에 잘 나와있다.

 

1. getX pub add

flutter pub add get

2. Controller 설정

import 'package:get/get.dart';

class GlobalProvider extends GetxController {
  String userId="";
  setUserId(String userId){
    this.userId = userId;
  }
  getUserId(){
    return this.userId;
  }

}

3. 앱 시작 시 Prefs에서 값을 가져와서 provider에 세팅

final GlobalProvider c = Get.put(GlobalProvider());

4. 필요한 위젯에서 해당 프로바이더의 값을 가져와서 사용

final GlobalProvider globalProvider = Get.find();
globalProvider.getUserId()

 

 

간단해서 전역 변수로 사용하기 아주 좋다.

자바의 inner static method와 매우 흡사해 보인다.

반응형