Sobes.tech
Junior — Middle

Ներկայացրեք Flutter-ում StatefulWidget-ի գաղափարը և ինչո՞վ է այն տարբերվում 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('Ավելացնել')),
      ],
    );
  }
}

Այստեղ, CounterWidgetStatefulWidget է, քանի որ հաշվիչի արժեքը փոխվում է և ազդում է UI-ի վրա: Եթե վիճակը չփոխվի, կարելի է օգտագործել StatelessWidget։