React use component from variable

Shows how to use component from variable

by Maciej Sikora

HTML

<script src="https://cdnjs.cloudflare.com/ajax/libs/babel-core/5.8.24/browser.js"></script>
<script src="https://npmcdn.com/react@latest/dist/react-with-addons.js"></script>
<script src="https://npmcdn.com/react-dom@latest/dist/react-dom.js"></script>
<script src="https://facebook.github.io/react/js/jsfiddle-integration-babel.js"></script>

<div id="container">
    <!-- This element's contents will be replaced with your component. -->
</div>

Babel + JSX

class Parent extends React.Component{


	render(){

    let items = [{title:'hello'}, {title:'world'}];
    let C = null; //null is more accurate for object variable

    switch (this.props.id) {
      case 1:
        C = A; //it is component reference, C must be from upper letter
        break;
      case 2:
        C = B; //it is component reference
        break;  
      default:
      	C = A;
        
    }

		return (
    <div>
    {items.map((item, index)=>{
    
        return <span key={index} ><C title={item.title} /></span>;
    
    })}
    </div>
    );
    
    
}

}

class A extends React.Component{

	render(){
  
  return <h1>A component - {this.props.title}</h1>;
  
  }

}

class B extends React.Component{

	render(){
  
  return <h1>B component - {this.props.title}</h1>;
  
  }

}


ReactDOM.render(
	<div><Parent id={1} /><Parent id={2} /><Parent/></div>,
  document.getElementById('container')
);