2017-04-19 12 views

答えて

4

私が正しければ、最初のコンポーネントのステートレスバージョンを作成するだけです。これを行うには、ラムダ関数をレンダリング関数として扱います。たとえば:

const Message = ({ type, msg }) => (type === 'success') ? <div>{msg}</div> : null 

あなたはternarysに慣れていない場合は、これは(も解体して)、上記と同様のものです:

const Message = props => { 
    const { type, msg } = props 
    if(type === 'success'){ 
     return <div>{msg}</div> 
    }else{ 
     return null; 
    } 
} 
+0

Getting:Error:メッセージ(...):有効なReact要素(またはnull)を返す必要があります。未定義、配列またはその他の無効なオブジェクトが返された可能性があります。 – JakeBrown777

+0

申し訳ありませんが、2番目の例のelseを忘れてしまいました。 –

1

機能コンポーネントは、基本的にrenderメソッドのみが定義されたクラスコンポーネントの省略形です。関数の本体は基本的にrender関数の本体です。

const Message = props => { 
    const { type, msg } = props; 

    if (type === 'success') { 
     return (<div>{msg}</div>); 
    }else{ 
     return null; 
    } // :) 
}; 
+0

Getting:Error:メッセージ(...):有効なReact要素(またはnull)を返す必要があります。未定義、配列またはその他の無効なオブジェクトが返された可能性があります。 – JakeBrown777

関連する問題