작성
·
203
-1
안녕하세요,
2장 ViewModel만들기의 11:00 부분부터 처음에 데이터를 가져오는 코드를 작성하는 설명이 시작됩니다.
여기서 두가지 옵션이 있다고 말씀하셨고, 강의에서 시범을 보여주신 방법은 viewModel 클래스에서 StoreModel생성할 때 였습니다.
두가지 질문 드립니다.
질문1.
StoreModel() {fetch()} 생성자가 main.dart에 적용되는 시점이 언제이기에, 여기의 내용이 main.dart의 build 부분에서 보여질 수 있는가요?
main.dart에서 runApp의 Value항목에서 StoreModel 클래스를 가져오며 실행이 되는 것인가요?
void main() {
return runApp(ChangeNotifierProvider.value(
value: StoreModel(),
child: MyApp(),
));
}
질문2.
처음에는 initState에서 해야한다고 생각해서 아래와 같이 작성을 해봤는데, 에러가 납니다.
만약 initState에서 StoreModel클래스의 fetch명령을 실행하려면 어떻게 해야하나요?
감사합니다.
답변 1
0
질문 1의 답입니다.
main 메서드의 runApp에서 StoreModel() 가 생성되므로 여기서 바로 생성자가 호출됩니다.
질문 2의 답입니다.
사용하신 방법은 fetch() 메서드가 static 인 경우에는 가능하지만 일반 메서드는 인스턴스를 생성한 후에 메서드를 호출해야 하므로
전역변수로 StoreModel model = StoreModel(); 과 같이 선언해 두신 후에
initState() 에서 model.fetch(); 를 하시는 것이 옳은 방법입니다.