2017-01-05 8 views
8

मैं कार्यात्मक/राज्यविहीन घटक और घटक है जो React.Component से विरासत में मिली है:प्रतिक्रिया - यह निर्धारित करने के लिए कि घटक स्टेटलेस/कार्यात्मक है या नहीं?

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

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

मैं कैसे निर्धारित कर सकते हैं घटक राज्यविहीन है या नहीं? क्या कोई आधिकारिक तरीका है?

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

क्यों तुम यह जानते हो की जरूरत है? –

+1

@JuanMendes मैं 'React.createElement' फ़ंक्शन का उपयोग करके 'ref' prop' सेट कर सकता हूं लेकिन कार्यात्मक घटकों में रेफरी नहीं हो सकती है। उस समय मुझे घटक प्रकार नहीं पता (यह गतिशील है)। – madox2

+0

आप अपने आप से बाहर एक घटक पर रेफरी सेट करना चाहते हैं? –

उत्तर

12

आप जाँच कर सकते हैं यह प्रोटोटाइप है, उदाहरण के लिए: दोरोन Brikman से

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

अच्छा, धन्यवाद! – madox2

+0

फ़ंक्शन को सही करें, इसमें एक बग है। नीचे मेरा जवाब देखें। – asdfasdfads

-1

सही जवाब ऊपर

function is_stateless(Component) 
{ 
    return typeof Component !== 'string' && !Component.prototype.render 
} 
संबंधित मुद्दे

 संबंधित मुद्दे