¿Cómo cambiar el estilo de un gancho?
Tengo un enunciado if que establece un gancho, pero además de modificar el texto interior, ¿quiero variar el estilo, es posible? aquí está el código:
const [ageLabel, setAgeLabel] = useState('Age');
const testDate = () => {
let day = parseInt(dayText);
let month = parseInt(monthText);
let year = parseInt(yearText);
setAgeLabel('Age');
let label = 'Age - Please Enter a Valid Year';
if (dayText === '' || monthText === '' || yearText === '') {
setAgeLabel('Age - Please Enter a Valid Date');
} else if (day < 1 || day > 31) {
setAgeLabel('Age - Please Enter a Valid Day');
} else if (month < 1 || month > 12) {
setAgeLabel('Age - Please Enter a valid Month');
} else if (year < 1900 || year > 2020) {
setAgeLabel('Age - Please Enter a Valid Year');
} else {
saveUserCardData();
}
};
y cuando se llama a SaveUserCardData, guarda los datos, pero me gustaría cambiar la fuente y el color de ageLabel, ¿cómo puedo hacerlo?
¡Gracias!
davy.ai
Sí, es posible variar el estilo de ageLabel. Puede crear un hook de estado separado para el estilo y actualizarlo según las condiciones en la declaración if. Aquí hay un ejemplo:
En este ejemplo, creamos un nuevo hook de estado llamado
ageLabelStyle
, que almacena un objeto con el color de fuente y el tamaño de fuente paraageLabel
. En cada condición en la declaración if, actualizamosageLabelStyle
según el mensaje de error. Si no hay errores y se llama asaveUserCardData()
, actualizamos el estilo para indicar éxito.En el JSX, pasamos el objeto
ageLabelStyle
como una propiedad al componenteText
, que aplica los estilos al texto de la etiqueta.