2016-03-24 1 views
1

をレンダリングする際に警告反応するかのselect実行中default場合:は、私は警告を取得するには、次のコードでは、インラインJSXの代わりに、輸入クラス

import React, { Component, propTypes } from 'react'; 
import Bar from './Bar/Bar'; 
import Baz from './Baz/Baz'; 

export default class Foo extends Component { 
    static propTypes = { 
    mode: PropTypes.string.isRequired, 
    basePath: PropTypes.string.isRequired, 
    }; 

    render() { 
    let Response; 
    switch (this.props.mode) { 
     case 'init': 
     Response = Bar; 
     break; 
     case 'edit': 
     Response = Baz; 
     break; 
     default: 
     Response = <div></div>; 
    } 

    return (
     <div> 
     <Response basePath={this.props.basePath} /> 
     </div> 
    ); 
    } 
} 

警告:

warning.js:45 Warning: React.createElement: type should not be null, undefined, boolean, or number. It should be a string (for DOM elements) or a ReactClass (for composite components). Check the render method of `Foo`. 

どのように私がすべきここで空のdivを作成していますか?

答えて

2

変更それResponse関数であるように:

default: 
    Response =() => <div></div> 

コンポーネント、ない要素(すなわち、コンポーネント・インスタンス)を想定し反応します。ここで、レスポンスは機能的なステートレスコンポーネントになり、警告は消えてしまいます。

関連する問題