isValidElement

isValidElement bir değerin React elemanı olup olmadığını kontrol eder.

const isElement = isValidElement(value)

Başvuru Dokümanı

isValidElement(value)

Bir value değerinin React elemanı olup olmadığını kontrol etmek için isValidElement(value) çağrısı yapın.

import { isValidElement, createElement } from 'react';

// ✅ React elemanları
console.log(isValidElement(<p />)); // true
console.log(isValidElement(createElement('p'))); // true

// ❌ React elemanı olmayan değerler
console.log(isValidElement(25)); // false
console.log(isValidElement('Hello')); // false
console.log(isValidElement({ age: 42 })); // false

Aşağıda daha fazla örneğe bakın.

Parametreler

  • value: Kontrol etmek istediğiniz value değeri. Herhangi bir türde değer olabilir.

Dönüş Değeri

isValidElement, value bir React elemanıysa true döndürür. Aksi takdirde false döndürür.

Uyarılar

  • Yalnızca JSX etiketleri ve createElement tarafından döndürülen nesneler React elemanı olarak kabul edilir. Örneğin, 42 gibi bir sayı geçerli bir React node’u olsa da (ve bir bileşenden döndürülebilse de), geçerli bir React elemanı değildir. createPortal ile oluşturulan diziler ve portal’lar da React elemanı olarak kabul edilmez.

Kullanım

Bir şeyin React elemanı olup olmadığını kontrol etme

Bir değerin React elemanı olup olmadığını kontrol etmek için isValidElement çağrısı yapın.

React elemanları şunlardır:

React elemanları için isValidElement, true döndürür:

import { isValidElement, createElement } from 'react';

// ✅ JSX etiketleri React elemanlarıdır
console.log(isValidElement(<p />)); // true
console.log(isValidElement(<MyComponent />)); // true

// ✅ createElement tarafından döndürülen değerler React elemanlarıdır
console.log(isValidElement(createElement('p'))); // true
console.log(isValidElement(createElement(MyComponent))); // true

Dizeler, sayılar veya rastgele nesneler ve diziler gibi diğer tüm değerler React elemanı değildir.

Bunlar için isValidElement, false döndürür:

// ❌ Bunlar React elemanı *değildir*
console.log(isValidElement(null)); // false
console.log(isValidElement(25)); // false
console.log(isValidElement('Hello')); // false
console.log(isValidElement({ age: 42 })); // false
console.log(isValidElement([<div />, <div />])); // false
console.log(isValidElement(MyComponent)); // false

isValidElement’e ihtiyaç duymanız oldukça nadir bir durumdur. En çok, yalnızca eleman kabul eden başka bir API çağırdığınızda (cloneElement gibi) ve argümanınız bir React elemanı olmadığında oluşacak hatayı önlemek istediğinizde faydalıdır.

isValidElement kontrolü eklemeniz için çok özel bir nedeniniz olmadıkça, muhtemelen buna ihtiyacınız yoktur.

Derinlemesine İnceleme

React elemanları ve React node’ları

Bir bileşen yazdığınızda, herhangi bir React node’u döndürebilirsiniz:

function MyComponent() {
// ... herhangi bir React node'u döndürebilirsiniz ...
}

Bir React node’u şunlardan biri olabilir:

  • <div /> veya createElement('div') ile oluşturulan bir React elemanı
  • createPortal ile oluşturulan bir portal
  • Bir dize (string)
  • Bir sayı (number)
  • true, false, null veya undefined (bunlar görüntülenmez)
  • Diğer React node’larından oluşan bir dizi

isValidElement, argümanın bir React elemanı olup olmadığını kontrol eder, bir React node’u olup olmadığını değil. Örneğin, 42 geçerli bir React elemanı değildir. Ancak mükemmel bir şekilde geçerli bir React node’udur:

function MyComponent() {
return 42; // Bir bileşenden sayı döndürmek sorun değildir
}

Bu nedenle, bir şeyin render edilip edilemeyeceğini kontrol etmek için isValidElement kullanmamalısınız.