Sobes.tech
Junior — Middle

Објасните концепт StatefulWidget у Flutter-у и у чему се разликује од StatelessWidget?

sobes.tech АИ

Одговор од АИ

U Flutter-u, StatefulWidget je vidžet koji može menjati svoje stanje tokom rada aplikacije. On čuva svoje stanje u posebnom objektu State, i kada se to stanje promeni, poziva se metoda setState(), koja osvežava interfejs.

Za razliku od toga, StatelessWidget nema unutrašnje stanje i uvek se gradi na osnovu prosleđenih parametara. Ne menja se nakon kreiranja.

Primer:

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('Brojač: \\$_counter'),
        ElevatedButton(onPressed: _increment, child: Text('Povećaj')),
      ],
    );
  }
}

Ovde, CounterWidget je StatefulWidget jer se vrednost brojača menja i utiče na UI. Ako se stanje ne bi menjalo, mogao bi biti korišćen StatelessWidget.