Sobes.tech
Junior — Middle

Paaiškinkite StatefulWidget koncepciją Flutter ir kuo ji skiriasi nuo StatelessWidget?

sobes.tech AI

Atsakymas iš AI

Flutter'yje StatefulWidget yra widget'as, kuris gali keisti savo būseną darbo metu. Jis saugo savo būseną atskirame State objekte, ir kai ši būsena keičiasi, kviečiama setState() metodas, kuris atnaujina sąsają.

Skirtingai nuo to, StatelessWidget neturi vidinės būsenos ir visada kuriamas remiantis perduotais parametrais. Jis nesikeičia po sukūrimo.

Pavyzdys:

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('Skaitiklis: \\$_counter'),
        ElevatedButton(onPressed: _increment, child: Text('Padidinti')),
      ],
    );
  }
}

Čia, CounterWidget yra StatefulWidget, nes skaitiklio reikšmė keičiasi ir veikia UI. Jei būsena nesikeistų, galima naudoti StatelessWidget.