Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

163
Vistas
¿Cómo puedo pasar el foco a la referencia en otros elementos borrosos en TS?

Tengo un formulario con un campo y un botón, me gustaría que el botón se destaque en el desenfoque de la entrada, así que he colocado una referencia en un botón.

 const btnRef = useRef<HTMLElement>(null);

y función escrita

 const passFocus = () => { btnRef.current?.focus(); };

pero en el botón ref mecanografiado tiene un problema al decir

 Type 'RefObject<HTMLElement>' is not assignable to type 'MutableRefObject<null>'. Types of property 'current' are incompatible. Type 'HTMLElement | null' is not assignable to type 'null'. Type 'HTMLElement' is not assignable to type 'null'.ts(2322) Button.tsx(10, 3): The expected type comes from property 'ref' which is declared here on type 'IntrinsicAttributes & Props & { children?: ReactNode; }'

el botón en sí se ve así

 <Button color={COLORS.TERTIARY} textColor={COLORS.FONT_COLOR} onPress={handleSubmit((data) => onSubmit(data))} ref={btnRef} > Enter </Button>

Si esto tiene alguna importancia, esto es React Native

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Es porque en el primer render ref es nulo y agrega solo HTMLElement para el tipo, por lo que debe hacer lo siguiente:

 const btnRef = useRef<HTMLElement | null>(null); const passFocus = () => { btnRef?.current?.focus(); };

y encadenamiento opcional para btnRef en passFocus

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda