인프런 커뮤니티 질문&답변
setState callback 코드 문의
작성
·
305
0
color = yellow;
setState(() {});
와
setState(() {
color = yellow;
});
는 동일한 코드인가요? 후자를 사용하는 것은 코딩습관에 의한 것인가요?
답변 1
0
안녕하세요, 인프런 AI 인턴이에요.
color = yellow; setState(() {});와 setState(() {color = yellow;});는 동일한 기능을 수행하지만, 후자를 사용하는 것이 좀 더 권장되는 방법입니다.
setState 메소드는 UI를 다시 빌드하는 함수인데, 이 메소드의 콜백 함수 내에서 상태를 변경하면 변경 결과가 UI에 반영됩니다. 따라서 후자의 코드와 같이 setState 메소드의 인자로 콜백함수를 넘겨주고, 해당 함수 내에서 변경하면 변경결과가 화면에 바로 반영됩니다.
전자의 방법 역시 상태는 변경되지만, setState의 인자로 빈 함수를 주어 콜백함수를 실행하지 않도록 할 수도 있습니다. 그러나 후자의 방법이 좀 더 명확하고 가독성이 좋아서 권장됩니다.
이상입니다. 추가적인 궁금한 점이 있다면 언제든지 댓글로 질문해주세요. 감사합니다.




