인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

진내님의 프로필 이미지
진내

작성한 질문수

[Bloc 응용] 실전 앱 만들기 (책 리뷰 앱) : SNS 로그인, Firebase 적용, Bloc 상태 관리, GoRouter

리뷰 작성화면에서 질문이 있습니다.

해결된 질문

작성

·

188

0

review_write_page에서 ReviewBox 부분에 리뷰를 작성후 textfield에서 focus out이 되었을때 작성한 리뷰 text가 안보이는 현상이 있습니다.

text가 사라지고 저장을 하게 되면 DB에는 데이터가 제대로 들어갑니다.

혹시 이부분은 어디를 수정해야 될까요?

답변 1

1

개발하는남자님의 프로필 이미지
개발하는남자
지식공유자

죄송합니다 소스코드 확인해보니 textField 에서 focus out에 대해서 대응을 하지못했네요

_ReviewBox 소스중 didUpdateWidet에 editingController.text에 초기 값을 넣는 부분이

focus out 될때 빈값으로 넣어지게 되면서 그런 현상이 발생된 것입니다.

이를 해결하기 위해서 oldWidget 을 체크해서 TextEditingController 에 값을 업데이트 할지 말지를 결정해줘야 합니다.

  @override
  void didUpdateWidget(covariant _ReviewBox oldWidget) {
    super.didUpdateWidget(oldWidget);
    if (oldWidget.initReview != null || widget.initReview != null) {
      editingController.text = widget.initReview ?? '';
    }
  }

이렇게 수정하시면 문제가 해결 되실 것입니다.

감사합니다.

진내님의 프로필 이미지
진내
질문자

감사합니다! 올려주신데로 수정했더니 정상작동됩니다^^

진내님의 프로필 이미지
진내

작성한 질문수

질문하기