말랑한 하루

[Flutter] (Project) MapleApp: 22. 예외 처리 작업-1 본문

개발/Flutter

[Flutter] (Project) MapleApp: 22. 예외 처리 작업-1

지수는말랑이 2024. 1. 17. 11:02
반응형

테스트를 진행하면서 예외 처리 작업 시 겪었던 내용을 적어 내려가려 한다. 작업을 진행하기 전, 테스트 항목에 대해 모두 기술하고, 그것을 기반으로 진행하면서 차근차근 변경하려 한다. 

 

🥕 정보가 입력되지 않았을 때, 검색을 클릭하는 경우 TextFiled로 포커싱

※ reference : https://docs.flutter.dev/cookbook/forms/focus

 

방법은 TextFiled에 autofocus 속성을 true로 설정하고, FocusNode class를 생성하는 것입니다. 그러면, 버튼을 클릭했을 대, FocusNode의 requestFocus method를 활용하여 강제로 TextFiled에 focusing할 수 있습니다. 자세한 예제는 reference를 참고해주세요.

 

🥕 페이지를 벗어났을 때, 텍스트 내 정보 삭제

간단하다! 우리는 TextFiled가 더 이상 필요하지 않기 때문에, textFiledController도 더 이상 사용하지 않는다. 때문에 controller의 dispose를 호출하여 사용하지 않는 모든 리소스를 삭제하면 된다!

@override
void dispose() {
	_textFiledController.dispose();
	super.dispose();
}

마찬가지로 새롭게 할당해 준 _focusNode도 dispose 시켜줍니다.

 

하지만 삭제되지 않았다. 그 이유는 context에서 push로 넘어갔기 때문이다. push method의 경우 routeStack에 해당 페이지 정보를 남겨 놓은 상태이므로 dispose가 되지 않는다. 따라서 go method를 활용해 페이지를 넘어 가주도록 하자.

반응형
Comments