1/3

박민준·2022년 1월 4일
0

오늘은 회의 마치고 돌아와서 밥먹고 빈둥대다가
한 8시부터 쭉 개발을 했다.

오늘 한 건 일기 작성하는 페이지 구현이었다.

텍스트폼 필드를 사용해본 적은 많으나 실제 이 데이터를 어딘가로 전송할 일이 없었기에 그와 관련된 개념을 잘 생각을 안 하고 코드를 짰었다. 그래서 실제 저번에 같이 개발할 때 문제가 있었고..

그래서 유저의 input을 어떻게 처리하고 저장할 수 있는지에 대해서 계속 공부했다. 별거 아닌 내용인 것 같은데 괜히 이상한 프로퍼티들에 꽂혀서 시간을 많이 낭비했다. 그래도 거의 다 이해해 나간 것 같다.

좀 재밌었던 구현 포인트들을 잡자면 아래와 같다

  • TextButton의 enalbed 제어하기!
    onPressed가 null 로 들어가면 자동으로 disabled 상태가 된다. 터치가 되지 않고, 버튼 색이 자동으로 변한다. 즉 onPressed 파라미터에 null을 조건부로 넣어주는 식을 넣어주면 validator를 쓰지 않고도 유사한 효과를 낼 수 있다는 것! 구현 방식은 아래와 같다.

    3항 연산을 사용했다. 즉, 위의 2개의 텍스트필드 둘 다 비어있으면 비활성화한다 이거다.
    그리고 이걸 깔끔하게 구현하려면 아래와 같은 세팅도 필요하다. 텍스트입력이 변화함에 따라 실시간으로 리빌드 되어야 위 3항연산이 매끄럽게 되기 때문. 그래서 onChanged에 setState를 넣어줬다.

(느낌적으로는 원리가 이해가 되긴 하는데, 논리적으로 설명하라고 하면 못하겠다. 아직 setState에 대해 엄밀히 알지 못하고 있기 때문인 것 같다)

아 글고 별건 아닌데 textEditingController의 특성에 대해서도 좀 배웠다.
얘는 무조건 dispose()에 오버라이드 해줘서 같이 dispose시켜줘야 한단다.
그리고
.text 로 외부에서 현재 입력되어 있는 값을 불러올 수 있고
.clear 로 현재 입력되어 있는 값을 지울 수 있다.


대강 이런 느낌

profile
코린이

0개의 댓글