🤍 전 강의 25% 할인 중 🤍

2024년 상반기를 돌아보고 하반기에도 함께 성장해요!
인프런이 준비한 25% 할인 받으러 가기 >>

  • 카테고리

    질문 & 답변
  • 세부 분야

    모바일 앱 개발

  • 해결 여부

    해결됨

onChangeNavBar 질문

23.04.05 16:57 작성 조회수 140

0

7:07에서

 

bottomNavigationBar 의 속성으로

onDestinationSelected: controller.onChangeNavBar를 했는데,

 

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

답변 1

답변을 작성해보세요.

0

안녕하세요!

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);
    }
    )

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

감사합니다!

채널톡 아이콘