Junior — Middle
Wyjaśnij koncepcję StatefulWidget w Flutter i czym różni się od StatelessWidget?
sobes.tech AI
Odpowiedź od AI
W Flutterze StatefulWidget to widżet, który może zmieniać swój stan podczas działania aplikacji. Przechowuje stan w osobnym obiekcie State, a gdy ten stan się zmienia, wywoływana jest metoda setState(), która aktualizuje interfejs.
W przeciwieństwie do tego, StatelessWidget nie ma wewnętrznego stanu i jest zawsze tworzony na podstawie przekazanych mu parametrów. Nie zmienia się po utworzeniu.
Przykład:
class CounterWidget extends StatefulWidget {
@override
_CounterWidgetState createState() => _CounterWidgetState();
}
class _CounterWidgetState extends State<CounterWidget> {
int _counter = 0;
void _increment() {
setState(() {
_counter++;
});
}
@override
Widget build(BuildContext context) {
return Column(
children: [
Text('Licznik: \\$_counter'),
ElevatedButton(onPressed: _increment, child: Text('Zwiększ')),
],
);
}
}
Tutaj CounterWidget jest StatefulWidget, ponieważ wartość licznika się zmienia i wpływa na UI. Gdyby stan się nie zmieniał, można by użyć StatelessWidget.