Junior — Middle
Selgitage Flutteris StatefulWidget kontseptsiooni ja kuidas see erineb StatelessWidgetist?
sobes.tech AI
Vastus AI-lt
Flutteris on StatefulWidget vidjet, mis võib muuta oma olekut rakenduse töö ajal. Ta salvestab oma oleku eraldi State objekti, ja kui see olek muutub, kutsutakse välja meetod setState(), mis uuendab kasutajaliidest.
Vastupidiselt sellele, StatelessWidget ei oma sisemist olekut ja ehitatakse alati vastavalt talle edastatud parameetritele. See ei muutu pärast loomist.
Näide:
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('Loendur: \\$_counter'),
ElevatedButton(onPressed: _increment, child: Text('Suurenda')),
],
);
}
}
Siin, CounterWidget on StatefulWidget, sest loenduri väärtus muutub ja mõjutab UI-d. Kui olek ei muutuks, võiks kasutada StatelessWidget.