작성
·
206
답변 1
1
안녕하세요!
이 부분은 바로 이전 섹션인 상태관리 강의에서 설명 드렸습니다.
dispose가 실행되는 순간은 HomeScreenState가 삭제되는 순간 즉, 더이상 스크린에 HomeScreen 위젯이 존재할 이유가 없어지는 순간입니다.
현재 로직상에서 timer가 null인 상황이 생기는건 거의 불가능합니다. initState에서 timer 값을 설정해주고 있으니까요.
하지만 timer를 세팅해주는 코드가 실행되기 전에 에러가 생긴다던지, 나중에 누가 코드를 추가해서 timer가 null 이 될 수 있는 상황을 만들수도 있습니다. 그렇기때문에 "null이 가능하다"라는 형태로 변수를 선언했다면 현재 로직상 null이 될 수 없더라도 나중을 위해 예외처리를 무조건 해줘야합니다.
dispose도 마찬가지입니다. 현재 HomeScreenState가 dispose 되는 시나리오는 없습니다. 하지만 나중에 앱이 커져서 여러 스크린이 생기고 기능이 추가되어 dispose가 되는 시나리오가 생길 수 있기 때문에 그 가능성을 염두해두고 코드를 작성해야합니다.
감사합니다!