Добрый день.
Вопрос: пусть есть let foo = 123;
и let bar = 'foo';
Как из bar обратиться к содержимому foo?
В частности, чтобы в React Native уметь делать вот так:
return ( <this.props.currentScreen /> );
когда в this.props.currentScreen лежит строка с именем компонента.
Как из bar обратиться к содержимому foo?
Что это значит? bar
это строка, foo
- число.
В частности, чтобы в React Native уметь делать вот так:
return ( <this.props.currentScreen /> );
Вот так пробовали?
const { currentScreen } = this.props;
return (
<div>
{ currentScreen }
<div/>
);
UPDATE 1
Попробуйте этот вариант:
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
Рабочий пример:
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>
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Нужно реализовать метод closestElement который принимает два параметра @param arrayToLook {arrayNumber} не пустой массив целых чисел от -10000 до 10000 @param valueToCheck {Number}...
Как создать блок дугой (внутрь блока) (потратил 5 часов на решение задачи и не нашел ответа)