Widgets com Estados Dinâmicos

Matheus Mota
Business Applications ITA
2 min readJul 12, 2021

É comum, quando estamos escrevendo um código em Flutter, fazer o uso do StatefulWidget para criar widgets com estados dinâmicos, ou seja, a aparência da widgets muda baseado nas respostas aos eventos acionados pela iteração do usuário quando recebe os dados.

O objeto desta widget é armazenado em um objeto State, separando o estado do widget de sua aparência. O estado consiste em valores que podem mudar, como o valor atual de um controle deslizante ou se uma caixa de seleção está marcada. Quando o estado do widget muda, o objeto de estado chama setState, dizendo à estrutura para redesenhar o widget.

Como exemplo, vamos pegar a estrutura de um StatefulWidget para ler o que o usuário escreve na caixa de texto e reescrever o texto logo abaixo.

Nesse exemplo, veja que quando a classe StatefulWidget foi criada ela teve que ser acompanhada da classe State, que será a classe que tratará as variáveis dinâmicas.

Para esse caso, a única variável dinâmica usada foi o myText.

Da linha 21 até a linha 23 foi usado o setState para modificar o estado da variável myText para um novo valor. Só que quando isso é feito a árvore, widget da página, é reescrita para que ela possa ter o dinamismo de na linha 32 ter sempre um texto de tudo que o usuário escreve.

Uma dúvida interessante é saber o que aconteceria se eu removesse da linha 21 a 23 e escrevesse apenas:

Nesse caso, a árvore da widget da página não seria atualizada e o texto não seria mudado, por mais que a variável internamente tenha sido modificada.

Isso geraria um problema caso você quisesse fazer uma página ou uma widget dinâmica.

Caso tenham alguma dúvida a respeito do conteúdo podem mandar mensagem por aqui, no grupo do Business Application ou me mandar uma mensagem diretamente que eu posso responder as dúvidas.

--

--