2017-01-05 15 views
8

I持ってReact.Componentから継承された機能/ステートレスなコンポーネントおよびコンポーネント:コンポーネントはステートレスであるかどうReact - コンポーネントがステートレスで機能するかどうかを判断する方法?

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を設定できますが、機能コンポーネントはrefを持つことができません。当時、私はコンポーネントタイプを知らない(それは動的です)。 – madox2

+0

自分自身の外部にあるコンポーネントのリファレンスを設定したいですか? –

答えて

12

あなたが例えば、それは試作品です確認することができます。

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

ありがとう! – madox2

+0

関数を修正してください。バグがあります。 下記の私の答えを参照してください。 – asdfasdfads

-1

修正し、答えをドロンBrikmanから

function is_stateless(Component) 
{ 
    return typeof Component !== 'string' && !Component.prototype.render 
} 
関連する問題