← Volver al inicio

Preguntas típicas de React.js

Intermedio

¿Qué son las Forward Refs?

El reenvío de referencia o Forward Refs es una técnica que nos permite acceder a una referencia de un componente hijo desde un componente padre.

// Button.jsx
import { forwardRef } from 'react'

export const Button = forwardRef((props, ref) => (
  <button ref={ref} className="rounded border border-sky-500 bg-white">
    {props.children}
  </button>
));

// Parent.jsx
import { Button } from './Button'
import { useRef } from 'react'

const Parent = () => {
  const ref = useRef()

  useEffect(() => {
    // Desde el padre podemos hacer focus
    // al botón que tenemos en el hijo
    ref.current?.focus?.()
  }, [ref.current])

  return (
    <Button ref={ref}>My button</Button>
  )
}

En este ejemplo, recuperamos la referencia del botón (elemento HTML <button>) y la recupera el componente padre (Parent), para poder hacer focus en él gracias al uso de forwardRef en el componente hijo (Button).

Para la gran mayoría de componentes esto no es necesario pero puede ser útil para sistemas de diseño o componentes de terceros reutilizables.


Compra el libro
Portada del libro de Preguntas de React