Flutter에서 initState()
는 State
객체의 생명주기 중에서 가장 먼저 호출되는 메서드입니다. StatefulWidget
의 상태 객체가 생성될 때 한 번만 호출되며, 초기 설정 및 리소스 할당과 같은 작업을 수행하는 데 사용됩니다.
initState()
의 주요 특징 및 사용 사례는 다음과 같습니다:
초기 설정: State
객체의 초기 데이터를 설정하거나, 위젯의 초기 상태를 설정하는 작업을 수행합니다.
리소스 할당: 컨트롤러 초기화, 리스너 추가, 타이머 설정 등의 리소스 할당 작업을 수행합니다.
한 번만 호출: State
객체의 생명주기 동안 initState()
는 한 번만 호출됩니다.
build
메서드 전 호출: initState()
는 build
메서드가 호출되기 전에 실행됩니다. 따라서 build
메서드에서 필요한 리소스나 데이터를 initState()
에서 미리 준비할 수 있습니다.
상태 변경 불가: initState()
내에서는 setState()
를 호출할 수 없습니다. 초기 상태를 설정하려면 initState()
내부에서 직접 변수 값을 변경해야 합니다.
간단한 예시를 통해 initState()
의 사용법을 살펴보겠습니다:
class MyWidget extends StatefulWidget {
_MyWidgetState createState() => _MyWidgetState();
}
class _MyWidgetState extends State<MyWidget> {
int _counter = 0;
void initState() {
super.initState();
// 초기 설정 및 리소스 할당
_counter = 5; // 초기값을 5로 설정
}
Widget build(BuildContext context) {
return Text('Counter: $_counter');
}
}
위의 예제에서 initState()
메서드는 _counter
변수의 초기값을 5로 설정합니다. 이렇게 initState()
는 위젯의 상태 객체가 생성될 때 필요한 초기 설정 작업을 수행하는 데 사용됩니다.
StatefulWidget
을 사용할 때 initState()
를 이용하여 초기화 작업을 구현할 수 있습니다. 이 메서드는 위젯의 생명주기 동안 중요한 역할을 하기 때문에, 상태 관리 및 리소스 할당 작업에 대한 이해가 필요합니다.