Junior — Middle
Vysvětlete koncept StatefulWidget ve Flutteru a v čem se liší od StatelessWidget?
sobes.tech AI
Odpověď od AI
Ve Flutteru je StatefulWidget widget, který může během běhu aplikace měnit svůj stav. Ukládá svůj stav v samostatném objektu State, a když se tento stav změní, volá se metoda setState(), která aktualizuje rozhraní.
Na rozdíl od toho, StatelessWidget nemá vnitřní stav a je vždy sestaven na základě předaných parametrů. Po vytvoření se nemění.
Příklad:
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('Čítač: \\$_counter'),
ElevatedButton(onPressed: _increment, child: Text('Zvýšiť')),
],
);
}
}
Zde je CounterWidget StatefulWidget, protože hodnota čítače se mění a ovlivňuje UI. Pokud by se stav neměnil, mohl by být použit StatelessWidget.