Inflearn Community Q&A
섹션10. 상태를 트리의 위로! 강의 관련질문
Written on
·
335
0
Onheartpressed()함수를 만들었는데 onpressed: 파라미터 뒤에 onheartpressed()라고 ()를 붙여야하는거 아닌가요? 함수니까 말이에요. 근데 왜 onheartpressed라고 () 없이 쓸 수가 있는거죠?
flutter클론코딩
Answer 2
0
binwon10723954
Questioner
그럼 onpressed: onheartpressed니까 ()를 안적고 정의만 했다는 말인데 onheartpressed에 ()를 붙여서 실행은 언제 하나요? 아무리 봐도
onheartpressed()로 실행한 코드가 없는데 어떻게 코드가 그려지는건가요?
0
codefactory
Instructor
안녕하세요!
onHeartPressed와 onHeartPressed()의 차이는 실행을 했냐 안했냐의 차이입니다.
저희가 일반적으로 onPressed:(){} <- 이런식으로 함수를 정의하게 되는데 이는 실행한 함수가 아닙니다.
함수 정의할때를 생각해보면 함수를 정의만 한 상태와 같은걸 알 수 있습니다.
비교를 해보면
onHeartPressed -> (){}
onHeartPressed() -> (){}()
이렇게로 볼 수 있습니다.
감사합니다!






onPressed 함수는 "눌렀을때" 실행되는 함수입니다. onHeartPressed() 이렇게 정의하면 build() 함수가 실행되는 순간, 즉 화면에 위젯이 그려지자 마자 실행됩니다. onHeartPressed 이렇게 입력만 해두면 정의만 기억하고 있다가 위젯이 눌렸을때 플러터 프레임워크가 onHeartPressed 함수를 실행 해줍니다. (코드가 그려지진 않습니다. 기능 실행입니다)