Junior — Middle
Обяснете концепцията за StatefulWidget във Flutter и как се различава от StatelessWidget?
sobes.tech AI
Отговор от AI
В Flutter StatefulWidget е виджет, който може да променя състоянието си по време на изпълнение на приложението. Той съхранява състоянието си в отделен обект 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.