CodeBlanks Logo Icon CodeBlanks

forwardRef

Bir alt bileşene ref'i forwardRef ile aktarmayı öğrenirsin.

forwardRef

Bazen bir ref'i alt bileşene geçirmen gerekir. Örneğin bir input bileşeni yazıyorsan ve üst bileşen o input'a odaklanmak istiyorsa, ref'i alt bileşene iletmen gerekir.

Bunun için forwardRef kullanılır. Bileşeni forwardRef ile sarmalarsın; ikinci parametre olarak ref alır ve ilgili DOM öğesine bağlar.

Ref bir prop değildir; normal props içinde gelmez. forwardRef ref'i özel olarak ele alır.

ref'i DOM'a bağlama

forwardRef ile sarmalanan bileşen, ikinci parametre olarak ref alır. Bu ref'i bileşen içindeki bir DOM öğesine ref={ref} ile bağlarsın.

Üst bileşen useRef ile bir ref oluşturur ve bunu alt bileşene ref={myRef} olarak geçirir. Alt bileşen bunu forwardRef ile alır ve ilgili DOM öğesine bağlar. Böylece üst bileşen alttaki DOM öğesine erişebilir.

Bu desen, tasarım sistemi bileşenlerinde yaygındır; üst bileşen alttaki input'a odaklanmak ister.

Uygulama FancyInput bileşeni

Aşağıdaki iskeleti tamamla. FancyInput bileşenini forwardRef ile yaz; (props, ref) alsın ve <input ref={ref} {...props} /> döndürsün. Dışa aktar.

Başlangıç kodu

App.jsx
import { forwardRef } from "react";

// FancyInput bileşenini buraya yaz

Örnek çözüm

App.jsx
import { forwardRef } from "react";

const FancyInput = forwardRef((props, ref) => {
  return <input ref={ref} {...props} />;
});

export default FancyInput;

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 forwardRef ne yapar?

  • State iletir
  • Ref iletir Doğru cevap
  • Event yakalar
  • Prop filtreler

Açıklama: forwardRef ref'i alt bileşene iletir.

2 forwardRef sarmalama

Soru
const FancyInput = ____((props, ref) => {
  return <input ref={ref} {...props} />;
});
Cevap
const FancyInput = forwardRef((props, ref) => {
  return <input ref={ref} {...props} />;
});

Açıklama: forwardRef ile bileşen ref parametresi alır.

3 forwardRef: kavramları eşleştir

Kavram Anlamı
forwardRef Ref iletir
ref parametresi İkinci argüman
ref={ref} DOM'a bağlar
useRef Ref oluşturur

Orta seviye bölümündeki tüm dersler