2017-01-05 16 views
8

Ben React.Component miras işlevsel/vatansız bileşen ve bileşen: bileşen vatansız olup olmadığınıReact - Bileşenin durumsuz/işlevsel olup olmadığını nasıl belirleyebilirim?

const Component1 =() => (<span>Hello</span>) 

class Component2 extends React.Component { 
    render() { 
    return (<span>Hello</span>) 
    } 
} 

nasıl belirleyebilir? Resmi bir yol var mı?

isStateless(Component1) // true 
isStateless(Component2) // false 
+0

yukarıda Neden bunu bilmek gerekiyor? –

+1

@JuanMendes "React.createElement" işlevini kullanarak 'ref' prop ayarlayabilirim ancak işlevsel bileşenlerin geri dönüşleri olamaz. O zaman bileşen tipini bilmiyorum (dinamik). – madox2

+0

Kendi dışındaki bir bileşendeki referansları ayarlamak ister misiniz? –

cevap

12

Eğer örneğin, prototip kontrol edebilirsiniz:

function isStateless(Component) { 
    return !Component.prototype.render; 
} 
+1

nice one, thanks! – madox2

+0

Fonksiyonu düzeltin, bir hata var. Aşağıdaki cevabıma bakın. – asdfasdfads

-1

Düzeltilmiş cevap Doron Brikman dan

function is_stateless(Component) 
{ 
    return typeof Component !== 'string' && !Component.prototype.render 
} 
İlgili konular