작성
·
278
답변 2
0
그럼 onpressed: onheartpressed니까 ()를 안적고 정의만 했다는 말인데 onheartpressed에 ()를 붙여서 실행은 언제 하나요? 아무리 봐도
onheartpressed()로 실행한 코드가 없는데 어떻게 코드가 그려지는건가요?
0
안녕하세요!
onHeartPressed와 onHeartPressed()의 차이는 실행을 했냐 안했냐의 차이입니다.
저희가 일반적으로 onPressed:(){} <- 이런식으로 함수를 정의하게 되는데 이는 실행한 함수가 아닙니다.
함수 정의할때를 생각해보면 함수를 정의만 한 상태와 같은걸 알 수 있습니다.
비교를 해보면
onHeartPressed -> (){}
onHeartPressed() -> (){}()
이렇게로 볼 수 있습니다.
감사합니다!
onPressed 함수는 "눌렀을때" 실행되는 함수입니다. onHeartPressed() 이렇게 정의하면 build() 함수가 실행되는 순간, 즉 화면에 위젯이 그려지자 마자 실행됩니다. onHeartPressed 이렇게 입력만 해두면 정의만 기억하고 있다가 위젯이 눌렸을때 플러터 프레임워크가 onHeartPressed 함수를 실행 해줍니다. (코드가 그려지진 않습니다. 기능 실행입니다)