• 카테고리

    질문 & 답변
  • 세부 분야

    모바일 앱 개발

  • 해결 여부

    미해결

Result view 처리

22.12.08 19:32 작성 조회수 223

0

안녕하세요 선생님.

선생님 강의를 듣다가 궁금증이 생겨서 질문드립니다.

선생님 강의에선 Result를 ViewModel 에서 처리를 하고 View에서 Result에 따라 분기처리하여 화면을 그리셨는데, ViewModel 에서 데이터처리를 하지 않고 사진과 같이 처리를 해도 무관한지 궁금합니다.

그리고 강의처럼 ViewModel에서 Result를 처리한 후 View에서 화면을 그리게 하고 싶으나 아래의 코드일 때 Result가 Error일 땐 error 값을 넘겨주면 될 것 같은데 Success 일 땐 어떻게 처리해서 View에 던져줘야 하는지 궁금합니다.

 

긴 글 읽어주셔서 감사합니다.

스크린샷 2022-12-08 오후 7.15.02.pngView

스크린샷 2022-12-08 오후 7.15.24.pngViewModel

스크린샷 2022-12-08 오후 7.28.03.png

Result

 

답변 1

답변을 작성해보세요.

1

View쪽에 FutureBuilder를 쓰고 계신 것 같네요. 잘 응용해서 하고 계신 것 같습니다.

원래 FutureBuilder나 StreamBuilder 를 사용하면 이런식으로 많이 하게 됩니다.

ViewModel 내부에서 처리하도록 수정한다면

State 클래스에 대략 다음과 같이 값을 가지도록 하고

String saying;
String name;
String? errorMessage;

errorMessage 가 null 이 아니면 saying과 name를 View측에서 표시하시고

errorMessage 가 null 이면 에러메시지를 표시하는 삼항식을 사용하시면 될 것 같습니다.

예를 들면 다음처럼이요.

return errorMessage == null
     ? Column(
       children: [
         Text(saying ...),
         Text(name ...),
       ]
     )
     : Text(errorMessage);

ViewModel에서 View로 값을 던지는 것은 없습니다. View가 일방적으로 ViewModel을 바라보는 것입니다.

힌트가 되었을까요.

이승훈님의 프로필

이승훈

질문자

2022.12.08

이런 방법이 있었군요 친절한 답변 감사합니다 :)