Sobes.tech
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.