인프런 커뮤니티 질문&답변

오리님의 프로필 이미지

작성한 질문수

GetX 기반 Flutter 앱 만들기

네비게이션바 만들기

onChangeNavBar 질문

해결된 질문

23.04.05 16:57 작성

·

176

0

7:07에서

 

bottomNavigationBar 의 속성으로

onDestinationSelected: controller.onChangeNavBar를 했는데,

 

onChangeNaveBar 의 파라미터인 idx는 어떻게 전달이 되는건가요?

답변 1

0

Sirius B님의 프로필 이미지
Sirius B
지식공유자

2023. 04. 05. 19:53

안녕하세요!

onDestinationSelected: controller.onChangeNavBar 를 직관적으로 풀어서 작성해볼게요 :)

  1. 직관적인 표현

onDestinationSelected: (int idx) {
controller.onChangeNavBar(idx);
}

원래 형태는 위와 같습니다.

onDestinationSelected 에는 int 값에 대한 파라미터가 1개 존재해요.

(int idx) {} 부분이 Function 이기 때문에,
같은 형태의 Function 인 onChangeNavBar(idx) 를
마치 변수처럼 onChangeNavBar 로 넣어주게 되면
메소드의 파라미터가 그대로 대입되어 사용할 수 있게 됩니다.

  1. 간단한 표현

onDestinationSelected: controller.onChangeNavBar

그래서 1번과 2번은 완전히 동일하게 작동할 수 있어요.


마찬가지로 더 많은 파라미터를 가진 메소드를 이용할 때도 같은 원리로 사용할 수 있어요.
아래 추가 예시에서도 ExamWidget 을 표현한 2가지 방식 모두 완전히 동일하게 실행되게 됩니다.

  • 추가 예시

    void onExam(int p1, bool p2, String p3) {
    print('$p1, $p2, $p3');
    }

    ExamWidget(
    onExamEvent: onExam
    )
    // 또는
    ExamWidget(
    onExamEvent: (int p1, bool p2, String p3) {
    onExam(p1, p2, p3);
    }
    )

또 다른 질문이 있으면 다시 남겨주세요 😀

감사합니다!

오리님의 프로필 이미지

작성한 질문수

질문하기