En esta clase vamos a hablar un poco sobre la validación de formularios.
No sé si ustedes se acordarán pero en el video pasado creamos un widget el cual nos permite a nosotros
poder controlar el estado de ese formulario y ese formulario internamente a pesar de que están dentro
de otros métodos.
Pero internamente dentro de ese formulario tenemos nuestro crear nombre y crear el precio.
Nosotros podemos poner condiciones especializadas para evaluar cada uno de estos campos y validarlos
por ejemplo en el text for.
Vamos a crear un válido editor Tapp y el vãlida editor recibe un Kovac o una función.
Si ustedes dejan el mouse encima aquí les va a decir que reciben el string que es el valor que tiene
esa caja de texto en el momento en que se llame este vãlida y entonces aquí tendríamos el Balli por
decir algo que es un tipo Es Trenc siempre van a regresar strengths ya lo vamos a hacer con el precio
que debería ser un número.
Ya vamos a ver eso en el barrio de nosotros tenemos que poner alguna condición que regrese un string
que es string sería el error.
En pocas palabras si no hay ningún error Tenemos que retornar NULL y si ustedes no implementan este
válido editor entonces va a ser considerado que no necesita ninguna validación.
Entonces podría ser una validación sencilla.
El valor que tiene esta caja de texto este producto si el link es de menos de tres caracteres.
Voy a poner un retrón que diga ingrese el nombre del producto.
Caso contrario voy a ser un retrón de ustedes pueden hacer esta función más corta e inclusive usar una
función de flecha usar el operador ternario de decisiones entre otras cosas pero la voy a dejar así
para que quede bastante clara.
En pocas palabras lo que quiero decir acá es que si Uds. retornã un string quiere decir que ese es el
error y si retornan o no quiere decir que pasa sin ningún problema.
Eso sería todo por la parte del validad autor del nombre voy a bajar y ahora voy a implementar el mismo
balido de autor para crear el precio pero aquí tiene que ser un poquito diferente.
A nosotros nos interesa que sea un número.
A fuerza entonces voy a poner aquí valio Drayton tap a bolillero Jaurès aquí siempre voy a tener Balio
y si dejo el cursor encima me dice que es un string a pesar de que aquí estoy diciéndole que solo van
a poder escribir números pero depende del teclado que la persona esté usando.
Pudiera ser que ingrese digamos varios puntos o caracteres especiales o otras cosas.
Necesito validar que sea un número.
Cómo podemos hacer eso.
Bueno podría desarrollar toda la lógica en el validador pero muy probablemente en otra posición o en
otra parte de mi aplicación necesite hacer la misma validación esa validación la voy a implementar en
un nuevo archivo independiente clic derecho nuevo folder.
Ustedes ya lo hemos utilizado y útiles dentro de YouTube clic derecho nuevo archivo aquí será también
útil apuntó Dart.
Dentro de útiles simplemente hay que hacerse el método o la función mejor dicho en la cual tenemos que
determinar si es un número o no.
Así que definamos.
Esto va a regresar un valor booleano y se va a llamar numérico o es un número o como ustedes quieran
ponerle.
Ahora desarrollarás vamos a hacer la decisión tendría que recibir una S como un string y ponerlo así
string S para que sea corto o el valor.
Y vamos a hacer la evaluación primero que si ese es en ti si está vacío entonces inmediatamente un retorno
del forzosa quiere decir que no es un número.
Ahora voy a preguntar si se puede parecer.
Es decir si se puede transformar a un número para eso final n es igual a nu punto trae tu paz y mandamos
el s.
De esta manera voy a saber si se puede o no se puede parcelar a un número y aquí voy a hacer el reto
de una condición que diga que si n es igual a NULL porque trae tus pares.
Si no lo puede hacer va a retornar un Null.
Entonces puede usar el operador ternario para regresar un Foss en caso si no se puede y si se pudo hacer
voy a poner otro pero lo escriben bien o True.
Esto sería todo mi implementación numérica ahora lo voy a utilizar para validar este campo de texto
que tengo acá.
Voy a preguntar si paréntesis es numérico paréntesis y mando el Balio.
Eso debería ser suficiente pero a mí no me gusta mucho utilizar este tipo de importación.
Hay que importar el huthis entonces contra el punto como en punto enter y listo.
Pero a mí no me gusta dejar esa importación de útiles directamente en el programa.
Entonces voy a ponerlo así y útiles voy a tomar este y útiles y útiles.
Voy a copiarme este método voy a bajar y aquí voy a decir útiles punto numérico de tal valor.
Ok si eso regresa un Truc quiere decir que efectivamente es un número y lo puedo trabajar.
Entonces tendría que ser un ratón de un Null OK es un número y quiere decir que si puedo trabajar con
él y pasa la validación.
Si no pasara la validación entonces voy a decir aquí solo números.
Puntico eso es básicamente toda la validación que necesito para estos dos campos.
Ustedes pueden poner cualquier cantidad de condiciones cualquier bueno pueden crear un archivo con su
validaciones de este tipo de formularios o como ustedes lo deseen.
Pero ahora me van a preguntar ok.
En este momento ambos valores están nulos y si toco el botón no pasa absolutamente nada.
Cómo podemos disparar esas reglas de validación para poder ver los mensajes de texto.
Y toda la cosa.
Bueno vamos a bajar y busquemos nuestro botón que actualmente no hace nada.
Entonces voy a cambiar esto un poco voy a crear un método para controlar el Summit.
Voy a llamar submit parentesis y ahora hiceron Jaurès.
Este es submit es el que voy a disparar cuando se presione este botón.
Ese es el botón que hay es para rascar.
Vamos a desarrollar la lógica debe de alguna manera o yo necesito de alguna manera poder hacer referencia
a nuestro formulario que tenemos acá de alguna manera necesito yo poder tomar esa referencia.
Se acuerdan que cuando queríamos trabajar con los Scrolls y manejarlo de manera automática nosotros
creamos un scroll controlé cuando nosotros queríamos insertar automáticamente en una caja de texto.
Nosotros creamos un controlador para manejar dicha caja de texto.
Aquí es algo parecido pero si yo escribo controlé van a ver que no aparece la opción pero en este caso
así como les CAFO y otros elementos o otros Willett de flores lo que te enviemos es un kit.
Que es el identificador único de este formulario y yo necesito crear o especificar que aquí y qué valor
es el que voy a poner acá.
Bueno vamos a subir justo abajo del Stainless Willet.
Voy a poner final espacio y defenderé la propiedad llamada form.
Yo estoy inventando en este momento y esto va a ser igual a global aquí parentesis punto y coma.
Yo también necesito especificar qué tipo de Global va a manejar este.
Qué iba a ser de tipo form Street esto siempre lo van a hacer así de esta manera ya no vamos a utilizar
para otras cosas pero de esta forma creó un Franqui que tiene la especificación de que sea para controlar
un form stated.
De esta manera voy a saber o mejor dicho Flore y Dart van a saber que esto es un formulario y tiene
todas las acciones propias de para para validar un formulario.
Ahora tomemos este Franqui y implementemos lo k.
Tengo mi inform y grabo los cambios si ustedes tocan el botón van a ver que todavía nada pasa.
Bueno yo pensé que eso ya era todo no porque en nuestro botón todavía no hemos dicho que queremos hacer
no hay nada.
Aquí puedes hacer una simple condición.
Bueno mejor dicho ejecutar este simple código form punto current state porque el estado actual del formulario
punto validad parentesis Punto y Coma toda esta instrucción si ustedes dejan el cursor encima regresa
un bullían ese booleano va a ser Tru.
Si el formulario es válido y va a regresar un Foss sigue el formulario no es válido entonces voy a grabar
los cambios y ahora si voy a tocar el botón Y noten que ambas validaciones se dispara me dice que ingrese
el nombre del producto y aquí sólo números y sólo números está dando un error porque no hay ningún valor
y ese vacío es el que se está mandando aquí y aquí cabe la condición y satrapa.
Pero si yo intento escribir una de las cajas de texto que no me deja y se redibujar el widget y eso
es porque estamos en un estarles Willett para trabajar con este tipo de campos con el text porfin controller.
Bueno thanks for Phil pero no yo lo que necesito es trabajarlo en vez de un Stainless esto convertirlo
en un widget.
Entonces ustedes ya saben cómo hacerlo contrapunto como en punto convirtieron un stated full van a grabar
los cambios y posiblemente aquí tengamos un error.
Bueno hay algunos casos donde se muestra la pantalla en rojo que podría ser el caso de Udes y para eso
bastaría hacer un TriStar y listo.
Pero no sé si ustedes notaron pero en este momento me acaba de votar la aplicación aquí abajo.
Entonces simplemente lo transformamos en un esteis full y volvamos a levantar la aplicación.
Esto debería de ser todo y aquí antes de que esto mientras eso se levanta lo único que tendría que hacer
acá es poner toda esta evaluación dentro de una condición y abrir y cerrar llaves.
Entonces aquí voy a poner todo el código.
Cuando el formulario es válido cuando el formulario es válido.
Esa sería una manera de hacerlo pero voy a tomar este código y voy a hacerlo así y el formulario no
es válido.
Digno admiración se formula uno válido simplemente obedecieron un retorno.
Y de esa manera todo el código que siga aquí después va a suceder únicamente si el formulario es correcto.
Lo voy a dejar de esta manera.
Nada más quiero esperar que esto funcione.
Voy a grabar los cambios.
Voy a poner un print que diga todo ok.
Punto y coma así entonces abramos la consola de Conso y probemos.
Noten que si esta condición no se cumple no debería aparecer todo.
Entonces toco el botón no aparece nada y ahora sí ya puedo escribir el nombre del producto.
Voy a poner tamales y el precio va a ser de 100.
Punto Cero toco el botón de guardar y ahí sí aparece todo OK puedo cambiarlo un poco y digamos que digo
100 puntos punto.com y otros valores toco el botón y no aparecen sólo números y nuestra validación se
está ejecutando.
Toco el botón de guardar y ahí tenemos todo ok dejemos la clase hasta este punto y continuamos con el
siguiente video.