1 00:00:02,380 --> 00:00:04,460 Ahora para validar lo que ingresó el 2 00:00:04,480 --> 00:00:07,680 usuario, por supuesto, quiero hacer algo en cada pulsación de tecla. 3 00:00:07,690 --> 00:00:11,740 Ahora ya tenemos onChangeText aquí como oyente en el título, por ejemplo, y 4 00:00:11,740 --> 00:00:15,700 lo que hacemos ahora es establecer el título en nuestro estado. 5 00:00:15,790 --> 00:00:18,700 Ahora, el siguiente paso es no solo hacer 6 00:00:18,700 --> 00:00:25,270 eso, sino no solo guardar la entrada, sino también validarla y también administrar la validez de esta entrada 7 00:00:25,510 --> 00:00:26,780 en un estado. 8 00:00:26,860 --> 00:00:36,620 Por lo tanto, agregaré una nueva función aquí, el controlador de cambio de título, por ejemplo, que obtiene el texto ingresado y luego puede hacer algo y simplemente 9 00:00:36,620 --> 00:00:41,870 externalizaré esto en una función con nombre separada para tener un poco más limpio, más 10 00:00:41,870 --> 00:00:48,830 fácil de seguir a lo largo del código porque ahora vincularé este oyente aquí a mi evento onChangeText, de modo 11 00:00:48,830 --> 00:00:55,610 que esta función se active para cada pulsación de tecla y allí, por supuesto, todavía estableceré mi título con 12 00:00:55,610 --> 00:00:56,290 el 13 00:00:56,300 --> 00:01:00,220 texto, pero ahora, además, como dije, también quiero administrar la validez 14 00:01:00,230 --> 00:01:03,590 y para eso podemos agregar otro estado que queremos administrar. 15 00:01:03,590 --> 00:01:10,580 Entonces, tal vez aquí después de administrar el valor del título, también podemos hacer que el título sea un estado válido 16 00:01:10,580 --> 00:01:16,100 o como quiera llamarlo y agregar el título del conjunto es válido aquí como una función 17 00:01:16,280 --> 00:01:18,780 de establecimiento y luego este estado aquí 18 00:01:18,800 --> 00:01:27,000 inicialmente podría ser falso para que inicialmente tratemos Esto no es válido. Ahora, por cada pulsación de tecla aquí en el controlador de cambio de título, 19 00:01:27,630 --> 00:01:33,180 antes de que podamos almacenar esto y actualizar nuestro estado de título, podemos validar esto, por supuesto, y 20 00:01:33,210 --> 00:01:36,320 ahora depende totalmente de usted cómo desea validar esto. 21 00:01:36,390 --> 00:01:45,130 Ahora, por ejemplo, podría decir que esto solo es válido si tiene un texto que no está vacío, así que si la longitud del texto 22 00:01:45,130 --> 00:01:47,990 es mayor que cero. El texto es una cadena, 23 00:01:48,000 --> 00:01:51,650 por lo tanto, si la longitud es cero, significa que es una cadena vacía. 24 00:01:51,660 --> 00:01:58,920 También podemos llamar a texto. recortar para recortar el espacio en blanco en exceso de modo que solo un montón de 25 00:01:58,920 --> 00:02:00,630 espacio en blanco tampoco se considere válido. 26 00:02:00,660 --> 00:02:05,760 Por supuesto, también puede agregar validación de longitud mínima o máxima al verificar la longitud aquí, puede 27 00:02:05,790 --> 00:02:10,420 agregar validación de expresión regular para verificar el texto de ciertos patrones y en realidad 28 00:02:10,440 --> 00:02:12,820 es algo que haremos más tarde 29 00:02:13,170 --> 00:02:15,620 también, pero para comenzar, voy a comenzar simplemente 30 00:02:16,110 --> 00:02:19,490 verifíquelo así y ahora aquí si somos mayores que cero, estamos 31 00:02:19,500 --> 00:02:23,550 bien, pero en realidad si tenemos una longitud de cero, no estamos bien. 32 00:02:23,550 --> 00:02:25,100 Entonces, aquí quiero establecer 33 00:02:25,320 --> 00:02:30,870 que el título sea válido en falso, de lo contrario, establecemos que el título es 34 00:02:30,880 --> 00:02:31,810 válido en 35 00:02:31,810 --> 00:02:34,810 verdadero, por lo que si tenemos una entrada 36 00:02:34,810 --> 00:02:40,420 válida y siempre configuraremos el título en sí, siempre tenemos que almacenar eso, nosotros nunca debe 37 00:02:40,420 --> 00:02:42,580 perder esa entrada del usuario, de 38 00:02:42,580 --> 00:02:44,410 lo contrario rompemos la aplicación. 39 00:02:44,410 --> 00:02:50,890 Y ahora con la validez del título almacenada en el estado, podemos usarla, por supuesto, aquí en nuestro código jsx 40 00:02:50,890 --> 00:02:56,980 para verificar si el título no es válido, por ejemplo, y si ese es el caso, podemos generar 41 00:02:56,980 --> 00:03:04,000 dinámicamente un texto aquí donde, por ejemplo, decimos ingrese un título válido para mostrar un pequeño mensaje de error aquí al que, 42 00:03:04,000 --> 00:03:06,670 por supuesto, también podría asignarle un estilo. 43 00:03:06,700 --> 00:03:11,530 Ahora con eso, verá que si vamos a nuestra entrada aquí, vemos que el mensaje de error desde 44 00:03:11,560 --> 00:03:15,900 el principio porque comenzamos en estado no válido y si comenzamos a escribir, esto desaparece, 45 00:03:15,910 --> 00:03:22,330 pero si elimino toda la entrada, vuelve a aparecer y esto es alguna validación básica que podría agregar para mostrar un pequeño mensaje 46 00:03:22,390 --> 00:03:27,910 de error o una pequeña pista a su usuario, para asegurarse de que los usuarios tengan al menos una idea 47 00:03:27,910 --> 00:03:29,790 de qué tipo de entrada desea. 48 00:03:29,800 --> 00:03:36,700 Ahora, por supuesto, no solo puede usar esta validez para generar mensajes de error, sino también para evitar que 49 00:03:36,700 --> 00:03:39,780 su formulario se envíe si no es válido. 50 00:03:39,820 --> 00:03:47,230 Entonces, aquí en el controlador de envío, donde siempre envío mis datos y creo o actualizo un producto sin importar si la entrada es 51 00:03:47,230 --> 00:03:51,190 válida, allí podemos usar los datos de validez que reunimos y, por ejemplo, 52 00:03:51,190 --> 00:03:56,530 verificar si el título es válido y si no lo es válido, de ahí el signo de exclamación, 53 00:03:56,550 --> 00:03:58,000 luego regresamos, lo que significa 54 00:03:58,060 --> 00:03:59,500 que cancelamos la 55 00:03:59,500 --> 00:04:04,770 ejecución de la función y el código posterior no se ejecutará y, además, es posible que no 56 00:04:04,850 --> 00:04:07,490 solo queramos regresar, por supuesto, también podemos importar alertas 57 00:04:07,510 --> 00:04:13,630 de React Native y lanzar un bonita alerta nativa aquí. Entonces, simplemente podemos mostrar alerta con un mensaje 58 00:04:13,630 --> 00:04:24,520 de entrada incorrecta o un título de eso y un mensaje de por favor verifique los errores en el formulario y luego simplemente agregue un botón 59 00:04:25,090 --> 00:04:32,620 allí donde decimos que está bien porque no hay nada más que hacer para confirmar, bueno con eso 60 00:04:32,620 --> 00:04:33,870 tenemos un 61 00:04:34,180 --> 00:04:39,760 buen flujo aquí donde advertimos al usuario que la entrada no es válida. 62 00:04:39,760 --> 00:04:45,570 Entonces, por ejemplo, ahora si trato de enviar esta entrada con mi título no válido, obtengo este error y 63 00:04:45,580 --> 00:04:51,250 solo si ingreso un título válido, puedo enviarlo porque todavía no he agregado la validación para las otras 64 00:04:51,250 --> 00:04:53,140 entradas que, por supuesto, deberíamos . 65 00:04:53,140 --> 00:04:56,410 Entonces, así de fácil puede comenzar con la validación. 66 00:04:56,440 --> 00:05:02,260 Ahora, como usamos Javascript aquí, por supuesto, también puede traer otras bibliotecas de validación de terceros, como ValidateJS, 67 00:05:02,950 --> 00:05:09,250 que es un paquete que puede instalar en su proyecto y comenzar a usar para luego validar fácilmente cadenas para 68 00:05:09,250 --> 00:05:15,310 ciertos patrones si lo desea Para hacer eso. En este módulo, escribiré los 69 00:05:15,310 --> 00:05:21,760 patrones básicos que usamos manualmente para que comprenda claramente lo que realmente está 70 00:05:21,790 --> 00:05:26,370 sucediendo allí, pero también puede incorporar bibliotecas de terceros. 71 00:05:26,380 --> 00:05:31,850 Bueno, y ahora con esa comprensión básica sobre la validación, etc., asegurémonos de que 72 00:05:31,990 --> 00:05:38,530 ahora también avancemos hacia una administración de formularios y entradas que sea más escalable y que no 73 00:05:38,620 --> 00:05:42,550 involucre toneladas de estados que tenemos que administrar manualmente.