• 카테고리

    질문 & 답변
  • 세부 분야

    모바일 앱 개발

  • 해결 여부

    미해결

stream 데이터

22.11.17 20:38 작성 조회수 184

0

안녕하세요.

현재 앱을 만들고 있는데, 고민하고 있는게 해결이 안되어 질문드립니다.

 

viewModel에 Stream 데이터를 넣고싶은데 어떻게 해야될까요?

해당 데이터를 구독하여, view의 consumer 위젯에서 재빌드 되고싶습니다.

 

그래서, streamprovider를 MultiProvider에 선언하여 사용하면, viewmodel 밖으로 빠져나가는데, mvvm 패턴이 아닌거같고요...

 

Streamprovider를 MultiProvider에서 생성하여, ProxyProvider로 viewmodel을 만들어야할까요??

답변 1

답변을 작성해보세요.

1

기본 기능으로 구현한다면

강의 후반에 노트 저장과 에러 메시지를 스트림으로 내보내서 UI에서 처리합니다.

그렇게 스트림을 만드시면 되고

단발성 이벤트는 listen() 으로 관찰하여 처리하고,

UI 를 구성해야 한다면 StreamBuilder 로 처리하시면 됩니다.

 

StreamProvider는 Stream 값만 독자적으로 제공할 때 쓰기 때문에 ViewModel 에 Stream을 넣어야 하는 상황에는 어울리지 않아 보입니다.

그리고 Consumer 는 ChangeNotifier 의 값을 노출해 주지만 Stream 값을 처리해 주지는 않습니다.

Consumer로 처리한다면 Stream은 ViewModel 내부적으로만 사용하고 UI에 노출은 최종 값만 노출하는게 맞습니다.

Stream에 새로운 값이 갱신될 때 마다 노출시킬 변수 값을 바꾸고 notifyChange() 를 호출하는 식으로요.