본문 바로가기

Flutter-플러터/플러터 공부

Getx - table_calendar 사용시 유의사항

반응형

 

 

Getx 사용시 table_calendar 패키지를 사용할 때 유의사항이 있습니다. 

table_calendar 패키지는 obx가 먹지를 않습니다........

 

Getbuilder를 사용하셔야 합니다. 

 

 

제가 구현하고자 했던 기능은 다음과 같습니다. 

 

달력 페이지에 해당 날짜를 클릭하면 

 

showModalBottomSheet

가 열림 

 

매월 기록하면 매월 성장 텍스트를 클릭하면 데이터를 추가하는 페이지로 넘어감 

 

 

 

여기에 입력한 데이터가 달력에서 바로 보여지기 위해서 Obx를 사용해봤습니다. 오류를 뱉어냈습니다. 

그래서 제가 다음과 같은 뻘짓을 했습니다. 

 

1. 저장하기 버튼을 누를 때 Get.back()이 아닌 Get.toNamed 사용 --> 이러면 새로운 페이지가 생성되면서 화면 위쪽에 뒤로가기 X 버튼이 생김 

2. 현재 하나의 컨트롤러로 여러 페이지를 관리하고 있는데 GetxController 기능 중 tag 기능을 사용. --> 각 tag의 컨트롤러가 따로 놀면서 데이터의 공유가 원활히 이루어지지 않음 

3. TapbarView 를 수정  --> 안먹힘 등등..

 

위와 같은 뻘짓은 약 15시간 진행 후 구글링을 한결과.. table_calendar 패키지는 obx 대신 Getbuilder 를 사용하라는 글을 보고 바로 적용했습니다. 

 

네 다행히 잘 작동하네요 '';; 

 

 

이러한 상황이 발생하게 된 이유는 Getbuilder와 Getivew -obx  조합의 차이가 있기 때문입니다. 

 

    • GetView 위젯은 주로 화면 전환 시에 사용됩니다.
    • 화면 전환 시에 해당 화면에 대한 컨트롤러를 자동으로 바인딩하며, 해당 컨트롤러를 화면과 연결합니다.
    • GetView는 상태 관리를 위해 컨트롤러를 생성하고 초기화하는 작업을 자동으로 처리합니다.
    • 주로 해당 화면과 관련된 컨트롤러가 필요하며, 화면 전환 시 컨트롤러와 화면을 연결하고 데이터를 가져와 표시하는 데 사용됩니다.
  1. GetBuilder:
    • GetBuilder 위젯은 주로 부분적인 화면 업데이트 또는 상태 변경 감지 시 사용됩니다.
    • 특정 부분 화면이나 위젯 내에서 상태가 변경되었을 때 화면을 다시 그리고 싶을 때 사용됩니다.
    • GetBuilder를 사용하면 해당 부분 화면의 상태를 추적하고, 해당 상태가 변경될 때마다 해당 부분 화면을 리빌드하여 업데이트할 수 있습니다.
    • 주로 특정 위젯 내에서만 일부 상태를 관리하고 싶을 때 사용됩니다.

간단히 말하면, GetView는 전체 화면 관리 및 전환에 사용되며, GetBuilder는 부분적인 화면 또는 위젯의 상태 관리와 업데이트에 사용됩니다. 어떤 위젯을 선택할지는 화면의 상태 관리 및 업데이트 필요에 따라 달라집니다.

 

 

 

table_calendar은 페이지 자체적으로 사용되지만 위젯의 기능이므로 Getbuilder가 더 적합한 것 같습니다~~!! 

지금까지 개발 할 때 Getview만 고집했는데 Getbuilder를 적절히 사용해야 겠습니다!

 

 

반응형