Flutter/짧은 글

[Flutter, GetX] GetController의 함수를 가져오기

allen15590 2022. 8. 2. 03:02
728x90

구글링하다가  getX controller파일에 저장한 함수를 불러오는 부분에서 막혀버렸었다

//notify_home_controller.dart

import 'package:get/get.dart';

class notifyController extends GetxController {
  String whichPage = 'academy';

  void changePage(num) {
    this.whichPage = num;
    print('whichPage값이 ${this.whichPage}로 변경되었습니다.');
    update();
  }
}

위의 코드에서 changePage함수를 사용하고 싶었는데, 메인 코드에서 사용하는 방법을 도저히 찾을 수가 없었다.

그래서 이것저것 시도해보다가 방법을 찾게 되었다.

Widget build(BuildContext context) {
	,,,
    //getX 사용을 위한 컨트롤러 생성
    final usedNotifyController = Get.put(notifyController());
    ,,,,
    onPressed: () {
    	//Get.find<notifyController>().changePage('academy');
        usedNotifyController.changePage('academy');
        }
}

바로 컨트롤러를 불러온 뒤 .을 붙여서 클래스 안에 값들을 가져오면 되는 것이었다.

컨트롤러를 불러오는 방법에는 2가지가 있는데, 하나는 변수로 선언하는 것과 사용할 때마다 Get.find<원하는 컨트롤러 이름>으로 불러오는 것이다.

변수로 저장을 해와도 객체 안에 값이 변경이 될까 싶었는데 계획대로 작동했다.

처음부터 

사실 컨트롤러가 class로 저장된 것만 인지했어도 당연하게 생각을 했을 것인데 그렇지 못하고 시간을 많이 잡아먹었었다.

 

728x90