1
resposta

[Bug] Acredito que o código tenha ficado com um bug

Nao é bem que o código não funciona, mas tem um erro ali que passou desapercebido.

No método difficultyvalidator (https://github.com/alura-cursos/alura_flutter_curso_3/blob/main/lib/screens/form_screen.dart, linha 26)

Os IFs aninhados não funcionam como o esperado. O código acaba testando apenas se o campo é nulo, mas nunca entra na condição de entre 1 e 5, isto acontece por que se ele nao for empty ele já sai para o return igual a false.

penso que o correto seria testar no mesmo IF, Algo como

 if(value != null && (value.isEmpty || int.parse(value) > 5 || int.parse(value) < 1)){
1 resposta

Oii Leonardo, tudo bem?

Muito obrigada por compartilhar com a gente!

A sugestão que você deu para modificar o código é uma boa solução. Ao colocar todas as condições dentro de um único if, você garante que todas sejam verificadas de forma correta. A condição value != null garante que o valor não seja nulo, e as condições (value.isEmpty || int.parse(value) > 5 || int.parse(value) < 1) verificam se o valor está vazio ou fora do intervalo permitido (1 a 5).

Um abraço e bons estudos.