Junior — Middle
Εξηγήστε την έννοια του StatefulWidget στο Flutter και ποια είναι η διαφορά του από το StatelessWidget;
sobes.tech AI
Απάντηση από AI
Στο Flutter, το StatefulWidget είναι ένα widget που μπορεί να αλλάξει την κατάσταση του κατά τη διάρκεια της εκτέλεσης της εφαρμογής. Αποθηκεύει την κατάσταση του σε ένα ξεχωριστό αντικείμενο State, και όταν αυτή η κατάσταση αλλάζει, καλείται η μέθοδος setState(), που ενημερώνει το περιβάλλον.
Σε αντίθεση, το StatelessWidget δεν έχει εσωτερική κατάσταση και κατασκευάζεται πάντα με βάση τις παραμέτρους που του περνάνε. Δεν αλλάζει μετά τη δημιουργία.
Παράδειγμα:
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('Μετρητής: \\$_counter'),
ElevatedButton(onPressed: _increment, child: Text('Αύξηση')),
],
);
}
}
Εδώ, το CounterWidget είναι ένα StatefulWidget επειδή η τιμή του μετρητή αλλάζει και επηρεάζει το UI. Αν η κατάσταση δεν άλλαζε, θα μπορούσε να χρησιμοποιηθεί ένα StatelessWidget.