작성
·
402
0
toppart위젯의 빌드함수안에 final now = DateTime.now(); 를 선언하는것은 어떤이유인가요?
final DateTime selectedDate;
final VoidCallback onHeartPressed;
밑에 선언해도(클래스의 변수로 선언해도) 동일한 동작을 하지않나요?
어차피 toppart는 statelesswidget이라 setstate를 하게되면 homescreen의 state가 다시 빌드되면서 toppart위젯도 (빌드함수만실행되는게아니라) 새로 생겨날텐데 어떤거는 빌드함수내에 선언하고 어떤거는 클래스내부의 프로퍼티로 선언하는지 차이가 궁금합니다.
toppart인스턴스에 onHeartPressed함수를 아규먼트로 넘겨줄때 함수기호인()괄호를 넣지않았는데 이는 voidcallback 과 관련있는것인가요? void함수도 파라미터를 만들수있는걸로 이해했는데 return이 있는(void가 아닌)함수만 함수를 사용할때 ()기호를넣는것인가요?
답변 1
0
안녕하세요!
1) 변수나 함수를 어디 선언하냐는 스코프의 차이가 있습니다. 현재 상황에서는 큰 차이가 없을걸로 보입니다!
2) onHeartPressed() <- 이렇게 괄호를 추가해줄경우 위젯 빌드시에 함수가 실행돼버립니다. 저희가 원하는건 콜백 함수를 등록하는거니 괄호를 생략하고 추가해줬습니다!
감사합니다!