2017-07-10 20 views
1
私はそれをレンダリングすることにより、コンポーネントを追加する必要があり

が反応する反応します。 どのようにレンダリングできますか?動的に追加するコンポーネントは、

+0

この回答https://stackoverflow.com/questions/36941829/how-to-load-component-dynamically-in-reactjs/46188808#46188808を参照してください。 –

答えて

1

あなたは、あなたが動的変数/小道具に基づいてそれらを作成することができ、それらすべて

import * as Components from './Components' 

をインポートし、すべての異なるコンポーネント

// Components.js 
export Foo from './Foo' 
export Bar from './Bar' 

をエクスポートファイルを作成することができます。

render() { 
    // this.props.type = 'Foo' 
    // renders a Foo component 
    const Component = Components[this.props.type]; 
    return Component && <Component />; 
} 
3

あなたは、動的コンポーネントへの参照を格納する必要があります。

import ComponentName from 'component-name' 

class App extends Component { 
    constructor(props) { 
     super(props) 

     this.components = { 
      'dynamic-component': ComponentName 
     } 
    } 

    render() { 
     // notice capitalization of the variable - this is important! 
     const Name = this.components[this.props.componentName]; 

     return (
     <div> 
      <Name /> 
     </div> 
    ) 
    } 
}; 

render(<App componentName={ 'dynamic-component' } />, document.getElementById('root')); 

は、詳細はreact docsを参照してください。

0
Okay, for me this worked: 

import {Hello} from 'ui-hello-world'; 

let components = {}; 

components['Hello'] = Hello; 
export default components; 

私のクラスでは: から輸入customComps '..... json'; .... letコンポーネント= Custom.default [customComps.componentName];

 return (
     <Component 
関連する問題