Estoy trabajando en un pequeño proyecto de reacción donde el entrenador usó el siguiente código
estados creados usando ganchos useState
const [purchasePrice, setPurchasePrice] = useState(""); const [downPayment, setDownPayment] = useState(""); const [loanTerm, setLoanTerm] = useState(""); const [loanApr, setLoanApr] = useState(""); const [monthlyPayments, setMonthlyPayments] = useState(0.0);Luego los pasó a una función que devuelve verdadero o falso y también actualiza el estado
//Validate fields const validatedPrice = await validateField(purchasePrice, setPurchasePrice); const validatedPayment = await validateField(downPayment, setDownPayment); const validatedLoanTerm = await validateField(loanTerm, setLoanTerm); const validatedApr = await validateField(loanApr, setLoanApr);código para la validación:
const validateField = (field, setvalue) => { let int = parseFloat(field); if(field === "" || field === 0) { setvalue({...field.values, error: "Please enter a value"}); return false; } else if(isNaN(int)) { setvalue({...field.values, error: "Please enter a number"}); return false; } else { setvalue(int); return true; } };en la función de validación, ¿cómo agregó el tipo de objeto al estado mientras que el tipo inicial del estado era una cadena? 1. ¿Podemos cambiar el tipo de valor inicial de useState en tiempo de ejecución? 2.¿Qué es .values en la línea?
setvalue({...field.values, error: "Please enter a value"});es una propiedad/función del objeto.
Encuentre el código completo aquí si necesita el código completo para comprender