How do bar access foo content?
What does it mean? bar is a string, foo is a number.
In particular, to be able to do this in React Native:
return ( <this.props.currentScreen /> );
So you tried it?
const { currentScreen } = this.props; return ( <div> { currentScreen } <div/> );
UPDATE 1
Try this option:
import someComponent from './components/someComponent'; import anotherComponent from './components/anotherComponent'; const map = { someComponent: someComponent, anotherComponent: anotherComponent, } const Component = map[this.props.currentScreen]; const props = this.props.currentScreenProps; return <Component ...props />
UPDATE 2
Working example:
class someComponent extends React.Component { render() { return ( <div> someComponent! {this.props.text} </div> ); } } class anotherComponent extends React.Component { render() { return ( <div> anotherComponent! {this.props.text} </div> ); } } class App extends React.Component { constructor(props) { super(props); } render() { const map = { someComponent: someComponent, anotherComponent: anotherComponent, } const Component = map[this.props.currentScreen]; const props = this.props.currentScreenProps; if (!Component) return null; return ( <Component {...props} /> ); } } // const currentScreen = 'someComponent'; const currentScreen = 'anotherComponent'; const props = { text: 'Hello World'}; ReactDOM.render( <App currentScreen={currentScreen} currentScreenProps={props} />, document.getElementById('root') );
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react-dom.min.js"></script> <div id="root"></div>
let obj = {}; obj.foo = 123; let bar = 'foo'; console.log(obj[bar]) /* 123 */let obj = {}; obj.foo = 123; let bar = 'foo'; console.log(obj[bar]) /* 123 */- Yaant