inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

Flutter 중급 1편 - 클린 아키텍처

34 노트 수정

viewModel이 생성되자마자 비동기 함수를 실행시키는 방법에 대해

458

shhsjk2002

작성한 질문수 11

0

안녕하세요.

강사님 덕에 클린 아키텍처와 조금씩 가까워지고 있는 수강생입니다.

너무 많이 여쭤봐서 죄송하지만 제 힘으로는 좋은 답을 얻을 수가 없이 질문 드립니다.

 

뷰 모델이 생성되자마자 데이터를 인터넷 등에서 비동기로 가지고 와야 할 때 고민이 생깁니다.

뷰 모델에서 async 함수를 만들어 뷰 모델 생성자에 넣으면, 생성자에서는 await가 안되기 때문에 즉시 데이터를 가져오지 못하고,

뷰 모델이 생성되기 전에, navigator.push를 통해 뷰 모델을 계속 생성하여 생성자 주입으로 넣어주면, async 함수를 또다른 뷰모델에서 사용해야 한다는 문제?가 있지 않나 싶습니다.

A에서 B로 이동하는 화면에서 B의 데이터를 A의 뷰모델에서 전달해주는 것이 옳바른가 하는 의문입니다.

답은 없지만 강사님의 의견을 듣고 싶습니다.

감사합니다.

 

ios android Flutter

답변 1

1

오준석

뷰 모델 생성자에서 Future 함수를 실행하고 then() 으로 받거나,

뷰 모델 내부에 별도의 Future 함수를 만들고 그 내부에서 await 코드를 사용합니다.

class ViewModel {
  ViewModel() {
     // 여기서는 실행만
     init();
  }
   
  Future<void> init() async {
     // 실행할 코드 작성, await 가능
     await 실행할함수();
  }
}

뷰모델 생성시 생성자로 넣어주는 방법도 좋은 방법입니다.

MVVM, 클린 아키텍처 관련 질문 있습니다.

0

87

2

가끔씩 ui가 깨지는? 현상이 있어서 질문드립니다.

0

95

1

freezed 3.0 대응된 코드 깃헙에도 업데이트 해주실 수 있으신가요?

0

182

3

sealed class 사용시 기능은 동작하지만 Radio위젯에 선택 표시가 안되는 부분 질문

0

123

2

sealed class 사용시 The getter 'orderType' isn't defined for the type 'NoteOrder<dynamic>' 오류

0

96

2

유즈케이스 관련하여 질문 드립니다.

0

93

1

mockito사용시 오류 해결법

1

123

2

sealed class 사용 문의2

0

78

2

sealed class 사용 문의

0

120

2

freezed3.0에서 build시 when생성되지 않습니다.

0

264

2

Try implementing the missing methods, or make the class abstract. 문제해결 공유

0

238

2

This is likely caused by a misconfigured builder definition. 오류 해결 방법

1

319

3

강의 화면이 안보여요

0

138

3

Flutter에서 추천하는 Navigator, Router

0

324

2

The following ProgressEvent object was thrown resolving an image codec: [object ProgressEvent]

0

325

3

event와 ui_event

0

212

1

코드 색깔 관련 질문

0

208

1

Photo.fleezed.dart,photo.g.dart삭제시 에러

0

206

2

sealed class 적용 시...

0

327

1

클린 아키텍처 질문

0

309

1

sealed class 데이터 접근

0

327

1

서버에서 데이터를 가져와서 사용하는 경우...

0

235

1

뷰/뷰모델 작성 질문

0

273

1

freezed JsonKey 사용 예시 공유

1

792

1