4. Flutter: Gerenciador de Estado: valueNotifier()

ValueNotifier é outra forma simples de você poder gerenciar seus estados

4. Flutter: Gerenciador de Estado: valueNotifier()

Basicamente iremos utilizar o mesmo código do artigo sobre o setState() para estudarmos o valueNotifier() que seria uma classe disponibilzada pelo Flutter que gerencia sua atualização.

Para isso iremos alterar a String nome; para:

final ValueNotifier<String> nome = ValueNotifier('Brasil');

E para acessar o valor dentro de nome precisamos instanciar o .value:

Text(nome.value),

Em setState() tivemos que quebrar o estado que queriamos atualizar em outro componente para ele poder ser alterado, aqui iremos fazer da mesma forma, mas dentro do componente que quero que seja atualizado iremos colocar o ValueListenableBuilder() que irá ficar escutando para realizar o build em algo. Vamos então remover o Text(nome.value); e colocar:

ValueListenableBuilder(
  valueListenable: nome,
  builder: (_, nomeValue, __) {
    return Text(nomeValue);
  }
),

Em nosso botão:

RaisedButton(
  onPressed: () {
    nome.value = "Brasil";
  },
  child: Text("alterar nome"),
)

Pronto, agora ao clicar em nosso botão o estado será alterado, mas somente do campo que está sendo escutado.

Você pode utilizar o ValueNotifier() sempre que fizer uma alteração simples em seu aplicativo, inclusive em conjunto com outros gerenciadores de estado.

Código Completo:

Veja aqui o código em funcionamento no DartPad.