javascript - Esta condición siempre devolverá 'false' ya que los tipos 'MutableRefObject' y 'string' no tienen coincidencia. TS2367
Tengo un problema usando React y TS
Tengo el estado del correo electrónico y la contraseña en States
const emailRef = useRef<string | null>(null);
const passwordRef = useRef<string | null>(null);
Colocándolos así:
const onEmailChange = (value: any) => {
emailRef.current = value;
};
const onPasswordChange = (value: any) => {
passwordRef.current = value;
};
Y trata de usarlos en la función onButtonEnter pero obtengo este problema:
const onButtonEnter = () => {
if (!buttonDisabled) {
setButtonDisabled(true);
if (emailRef === '' && passwordRef === '') { - here I have an issue
showAlert(errors.invalid);
¡¡¡Esta condición siempre devolverá 'false' ya que los tipos 'MutableRefObject
¿Qué puede ser?
Respuesta #1
La respuesta a tu problema está en el mensaje de error:
emailRefes un objeto de React - 'MutableRefObject<string | null>'emailRef.currentes tu cadena
emailRef nunca será '', emailRef.current, por otro lado, muy bien podría serlo.
Cambiar
if (emailRef === '' && passwordRef === '') {
en
if (emailRef.current === '' && passwordRef.current === '') {
Y quizás, lee un poco más sobre useRef en la documentación de React.
