inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!

StatefulWidget Life Cycle 실습 - 3

라이프사이클 별로 어떤 작업을 할당(?)해야하는지 궁금합니다.

해결된 질문

294

itjustbong

작성한 질문수 7

0

안녕하세요,
플러터 관련 라이프사이클 수업을 듣던 중 궁금 중이 생겨서 문의를 남깁니다.

 

플러터 Stateful Widget에서는 크게 7단계가 있는 것 같습니다.

각각의 메소드들의 언제 호출되는지는 수업을 통해서 잘 이해했습니다.

제가 궁금한 것은, 각각의 라이프사이클에서 어떤 작업을 하도록 해야(?)하는지가 궁금합니다.

 

예를들어 네트워크 요청은 어느 라이프사이클의 메소드를 통해 진행하는지, 이벤트 등록을 해지는 어느 라이프사이클 메소드에서 하는지가 궁금합니다.

 

또한 안드로이드 같은 경우에는 라이프사이클의 메소드 실행이 보장되는 경우가 있고, 안되는 경우도 있던데 플로터에도 비슷한 정책(?)가 있는지 궁금합니다.

 

(좋은 수업 감사드립니다!)

flutter 클론코딩

답변 1

3

코드팩토리

안녕하세요!

각 라이프사이클은 강의를 진행하면서 직접 사용해보게 됩니다.

각 라이프사이클에서 실행하는 함수에대해 말씀드릴 수 있는건 현재 시점에서 강의에서 말씀드린게 전부입니다.

예를들어 initState()는 State가 초기화될때 실행해야할 함수를 실행하는 위치이고 dispose()는 State가 삭제될때 실행할 함수들을 실행하는 위치입니다.

네트워크 요청이 "꼭" 어떤 라이프사이클 메서드에서 실행돼야한다는 없습니다.

State가 생성될때 실행돼야한다면 initState()에서 실행할것이고 Widget 파라미터가 변경될때 실행해야한다면 didUpdateWidget()에서 실행할것입니다. 그러니 함수의 기능보다 "언제" 실행해야하는가가 더 중요합니다.

플러터에서 라이프 사이클 메서드 실행이 보장 안되는 경우는 잘못된 설계나 오류가 있을때 뿐일거라고 생각됩니다. 방금 리서치도 해봤는데 제가 아는한에는 없습니다.

감사합니다!

198강 (){onTap(e);}의 이해 돕기

0

26

1

video_call 플러그인 설치후 에러 발생

0

45

1

SDK 안드로이드 설치 질문!

0

60

1

코드팩토리 디스코드 링크 다시 부탁드려요~

0

92

1

Webview를 이용해서 URL 상의 페이지 출력 불가

0

70

1

홈스크린 함수를 함축해서 main.dart에 옮기는 문제

0

55

1

플레이스토어

0

59

1

아고라 엔진 init 함수의 반환타입이 Future<void> 이것의 의미는 무엇인가요?

0

55

1

가이드라인 질문

0

57

0

emulator 에러 환경설정 뭐가 문제 일까요??

0

76

1

emulator 실행 오류

0

93

3

Column을 가로방향 최대 사이즈를 차지하도록 하는 방법에 관련

0

71

1

pubspec.yaml에서 font를 추가하면서 weight 값을 지정하는 것이 의미가 있는 것인지 문의

0

43

1

setState()를 호출하지 않으면 build가 실행 안되는 건가요?

0

53

1

video_call 플러그인 설치시 에러문제

0

64

1

children 안의 if 문에서 { } 못쓰는 이유?

0

48

1

이렇게 오류가 떠요

0

63

1

AppBar 사용했는데

0

61

2

[문제해결] '오늘도 출첵!' 의 171번 강의에서 중요한 문제를 발견했습니다

0

56

1

StatefulWidget 실습 에러가 발생합니다.[해결완료]

0

63

1

Video Player 프로젝트에 대한 추가 질문

0

53

0

Row위젯이나 column위젯의 위치는 누가 정하나요??

0

42

1

geolocator 오류때문에 개발진행이 불가능입니다

0

63

1

API 관련 이슈

0

86

2