DevBoi

[Flutter] Getx로 전역 Provider 설정 본문

[Mobile]/[Flutter]

[Flutter] Getx로 전역 Provider 설정

HiSmith 2023. 9. 7. 02:20
반응형

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

그건 아니다. 전역으로 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와 매우 흡사해 보인다.

반응형