Sobes.tech
Back to questions
Junior — Middle
90

Объясните концепцию StatefulWidget в Flutter и в чем его отличие от StatelessWidget?

Companies where asked
mobifitness
Grotem
ЯндексЯндекс
Верме

Answer from AI

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