Sobes.tech
Junior — Middle

Explique o conceito de StatefulWidget no Flutter e em que difere de StatelessWidget?

sobes.tech IA

Resposta da IA

No Flutter, StatefulWidget é um widget que pode alterar seu estado durante a execução do aplicativo. Ele armazena seu estado em um objeto separado State, e quando esse estado muda, o método setState() é chamado, o que atualiza a interface.

Em contraste, StatelessWidget não possui estado interno e é sempre construído com base nos parâmetros passados a ele. Ele não muda após a criação.

Exemplo:

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

Aqui, CounterWidget é um StatefulWidget porque o valor do contador muda e afeta a UI. Se o estado não mudasse, poderia usar um StatelessWidget.