Otra forma de presentar el error de forma elegante es usando ToastAndroid
ToastAndroid.show('El usuario o contraseña son incorrectos', ToastAndroid.SHORT);
El cual enseña la conocida burbujita de texto flotante que desaparece al poco tiempo.
Otra forma de presentar el error de forma elegante es usando ToastAndroid
ToastAndroid.show('El usuario o contraseña son incorrectos', ToastAndroid.SHORT);
El cual enseña la conocida burbujita de texto flotante que desaparece al poco tiempo.


Puse las alertas en un línea
<Text style={styles.error}>{formik.errors.username}{"\n"}{error}{"\n"}{formik.errors.password}</Text>
Buenas tardes, hubiera sido bueno que el ejemplo del login hubiera sido con APi , hubiera dado mejor orientacion que usando un userBD.js de ejemplo.
Si les molesta que el error que indica que las credenciales son incorrectas aparezca muy abajo, es porque los Text de errores de user y password se renderizan siempre tengan texto o no.
Agregandole un simple if para controlar si existe el error para renderizar el <Text>
{formik.errors.username? <Text style={styles.error} > {formik.errors.username} </Text> : ""}
{formik.errors.password? <Text style={styles.error} > {formik.errors.password} </Text> : ""}
{error? <Text style={styles.error} > {error} </Text> : ""}
import React, { useState } from "react";
import {
StyleSheet,
View,
Text,
TextInput,
Button,
Keyboard,
} from "react-native";
import { useFormik } from "formik";
import * as Yup from "yup";
import { user, userDetails } from "../../utils/userDB";
export default function LoginForm() {
const [error, setError] = useState("");
const formik = useFormik({
initialValues: initialValues(),
validationSchema: Yup.object(validationSchema()),
validateOnChange: false,
onSubmit: (formValue) => {
setError("");
const { username, password } = formValue;
if (username !== user.username || password !== user.password) {
setError("El usuario o la contraseña no son correcto");
} else {
console.log("Login correcto");
console.log(userDetails);
}
},
});
return (
<View>
<Text style={styles.title}>Iniciar sesión</Text>
<TextInput
placeholder="Nombre de usuario"
style={styles.input}
autoCapitalize="none"
value={formik.values.username}
onChangeText={(text) => formik.setFieldValue("username", text)}
/>
<TextInput
placeholder="Contraseña"
style={styles.input}
autoCapitalize="none"
secureTextEntry={true}
value={formik.values.password}
onChangeText={(text) => formik.setFieldValue("password", text)}
/>
<Button title="Entrar" onPress={formik.handleSubmit} />
<Text style={styles.error}>{formik.errors.username}</Text>
<Text style={styles.error}>{formik.errors.password}</Text>
<Text style={styles.error}>{error}</Text>
</View>
);
}
function initialValues() {
return {
username: "",
password: "",
};
}
function validationSchema() {
return {
username: Yup.string().required("El usuario es obligatorio"),
password: Yup.string().required("La contraseña es obligatoria"),
};
}
const styles = StyleSheet.create({
title: {
textAlign: "center",
fontSize: 28,
fontWeight: "bold",
marginTop: 50,
marginBottom: 15,
},
input: {
height: 40,
margin: 12,
borderWidth: 1,
padding: 10,
borderRadius: 10,
},
error: {
textAlign: "center",
color: "#f00",
marginTop: 20,
},
});
Saludos TinCode, no me baneen jajaj
Hola, les dejo mi código para esta clase (es como React Form Hook, Zod y Typescript):
Algo adicional que hice fue separar la lógica de validación del formulario del componente de Login, para que sea escalable y reutilizable. Éxito.
Hola Team, ¿Alguien sabe como puedo usar la autenticación con google usando firebase en react native? muy poca documentación al respecto.
Es buen contenido para empezar, pero estaría muy bueno que actualizaran el curso.
Diego Delgado
Sabino Fernández
Neyen Aponte
Kevin Parra Lopez
Nicolás Posa
Jorge Arteaga
wilson mantilla
Eliezer Mas Y Rubi
Diego Delgado
Nick Paz
Gustavo Pú
Daniel Rodriguez Davila
David Rangel
Jhonatan Jose Ramirez Leal
Andres Roberto Coello Goyes
Andres Roberto Coello Goyes
Sergio Tulio Cota Bravo
Deiver Mata
Moises Abel Avila Garcia
Otra forma de presentar el error de forma elegante es usando ToastAndroid
ToastAndroid.show('El usuario o contraseña son incorrectos', ToastAndroid.SHORT);
El cual enseña la conocida burbujita de texto flotante que desaparece al poco tiempo.
Gracias por este dato!
Muchas gracias por el dato
Asi va mi form 😎
Puse las alertas en un línea
<Text style={styles.error}>{formik.errors.username}{"\n"}{error}{"\n"}{formik.errors.password}</Text>
Muchas gracias
Buenas tardes, hubiera sido bueno que el ejemplo del login hubiera sido con APi , hubiera dado mejor orientacion que usando un userBD.js de ejemplo.
si fuera con una API, en la función de onSubmit debes hacer el llamado y enviar los datos, la respuesta te devolverá si los datos ingresados son correctos o no. esa seria al validación, el resto quedaría igual.
Hasta donde puedo entender, react-native solo te permite elaborar el front end para la aplicación móvil, por llamarlo de alguna forma. Para realizar acciones por el lado de servidor, te tocaría usar otra herramienta como express.js
Si les molesta que el error que indica que las credenciales son incorrectas aparezca muy abajo, es porque los Text de errores de user y password se renderizan siempre tengan texto o no.
Agregandole un simple if para controlar si existe el error para renderizar el <Text>
{formik.errors.username? <Text style={styles.error} > {formik.errors.username} </Text> : ""} {formik.errors.password? <Text style={styles.error} > {formik.errors.password} </Text> : ""} {error? <Text style={styles.error} > {error} </Text> : ""}
import React, { useState } from "react"; import { StyleSheet, View, Text, TextInput, Button, Keyboard, } from "react-native"; import { useFormik } from "formik"; import * as Yup from "yup"; import { user, userDetails } from "../../utils/userDB"; export default function LoginForm() { const [error, setError] = useState(""); const formik = useFormik({ initialValues: initialValues(), validationSchema: Yup.object(validationSchema()), validateOnChange: false, onSubmit: (formValue) => { setError(""); const { username, password } = formValue; if (username !== user.username || password !== user.password) { setError("El usuario o la contraseña no son correcto"); } else { console.log("Login correcto"); console.log(userDetails); } }, }); return ( <View> <Text style={styles.title}>Iniciar sesión</Text> <TextInput placeholder="Nombre de usuario" style={styles.input} autoCapitalize="none" value={formik.values.username} onChangeText={(text) => formik.setFieldValue("username", text)} /> <TextInput placeholder="Contraseña" style={styles.input} autoCapitalize="none" secureTextEntry={true} value={formik.values.password} onChangeText={(text) => formik.setFieldValue("password", text)} /> <Button title="Entrar" onPress={formik.handleSubmit} /> <Text style={styles.error}>{formik.errors.username}</Text> <Text style={styles.error}>{formik.errors.password}</Text> <Text style={styles.error}>{error}</Text> </View> ); } function initialValues() { return { username: "", password: "", }; } function validationSchema() { return { username: Yup.string().required("El usuario es obligatorio"), password: Yup.string().required("La contraseña es obligatoria"), }; } const styles = StyleSheet.create({ title: { textAlign: "center", fontSize: 28, fontWeight: "bold", marginTop: 50, marginBottom: 15, }, input: { height: 40, margin: 12, borderWidth: 1, padding: 10, borderRadius: 10, }, error: { textAlign: "center", color: "#f00", marginTop: 20, }, });
Saludos TinCode, no me baneen jajaj
Hola, les dejo mi código para esta clase (es como React Form Hook, Zod y Typescript):
Algo adicional que hice fue separar la lógica de validación del formulario del componente de Login, para que sea escalable y reutilizable. Éxito.
Hola Team, ¿Alguien sabe como puedo usar la autenticación con google usando firebase en react native? muy poca documentación al respecto.
Hola aqui te dejo un video que realize en mi canal, espero te ayude.
Postada;: Dale like :D
Es buen contenido para empezar, pero estaría muy bueno que actualizaran el curso.
variadores de velocidad sinamic
muy bien explic|a||d|o