반응형
State 하위 메서드에서는 아래와 같은 메서드를 오버라이드 해서, 초기 세팅을 할 수 있다.
@override
void initState() {
super.initState();
}
근데 비동기 함수를 중간에 넣으면 잘 동작을 안하는 경우가 있다.
supser.initState가 위 함수 완료 이전에 진행되면 빈화면이 노출된다.
방법은 크게 생성자와 비동기 함수 동작이다.
생성자는 다른 포스팅에서 많이 다뤄서 아래와 같이 다른 방법을 공유한다.
@override
void initState() {
asyncMethod();
super.initState();
}
asyncMethod() async {
dataInterface.init().then((value) => {
setState((){
reportList = dataInterface.load();
getResult(reportList);
})
});
}
위와 같이하면,
해당 setState가 먼저 실행되어서, 데이터가 세팅할 준비를 마치고, super.initState로 해당 데이터를 세팅하도록 할 수 있다.
반응형
'[Mobile] > [Flutter]' 카테고리의 다른 글
[Flutter] FutureBuilder setState 동작 이슈 (0) | 2023.09.03 |
---|---|
[Flutter] Dialog 콜백 값 핸들링 (0) | 2023.09.02 |
[Flutter] Chip 사용 (0) | 2023.08.28 |
[Flutter] 팝업 구현 (0) | 2023.08.26 |
[Flutter] 다양한 FormBuilder,FormValidator (0) | 2023.08.26 |