Flutter에서 createState()
는 StatefulWidget
클래스 내에서 정의되는 메서드로, 해당 위젯의 상태를 나타내는 State
객체를 생성하고 반환하는 역할을 합니다.
StatefulWidget
은 내부 상태를 관리하기 위해 State
객체를 필요로 합니다. State
객체는 위젯의 상태와 관련된 데이터를 보유하며, 상태가 변경될 때 UI를 재구성하는 로직을 포함합니다. createState()
메서드는 이 State
객체를 생성하는데 사용됩니다.
createState()
메서드의 주요 특징은 다음과 같습니다:
createState()
는 State
객체를 반환해야 합니다.StatefulWidget
을 정의할 때, createState()
메서드를 반드시 오버라이드(재정의)해야 합니다.createState()
에서 반환된 State
객체는 해당 StatefulWidget
인스턴스와 연결됩니다. 따라서 위젯의 상태가 변경될 때마다 해당 State
객체의 build
메서드가 호출되어 UI가 재구성됩니다.간단한 예시로, StatefulWidget
과 createState()
의 사용법을 살펴보겠습니다:
class MyCounter extends StatefulWidget {
_MyCounterState createState() => _MyCounterState();
}
class _MyCounterState extends State<MyCounter> {
int _count = 0;
void _increment() {
setState(() {
_count++;
});
}
Widget build(BuildContext context) {
return Column(
children: [
Text('Count: $_count'),
ElevatedButton(
onPressed: _increment,
child: Text('Increment'),
),
],
);
}
}
위의 예제에서 MyCounter
클래스는 StatefulWidget
을 상속받습니다. createState()
메서드는 _MyCounterState
라는 State
객체를 생성하여 반환합니다. _MyCounterState
클래스는 위젯의 상태 (여기서는 _count
변수)와 상태 변경 로직 (여기서는 _increment
메서드)을 포함하고 있습니다.
결론적으로, createState()
는 StatefulWidget
의 핵심 메서드로, 위젯의 상태를 관리하고 UI를 재구성하는 데 필요한 State
객체를 생성하는 역할을 합니다. StatefulWidget
을 사용할 때 항상 이 메서드를 정의해야 합니다.