Я пытаюсь динамически визуализировать компоненты на основе их типа.React/JSX Динамическое имя компонента
Например:
var type = "Example";
var ComponentName = type + "Component";
return <ComponentName />;
// Returns <examplecomponent /> instead of <ExampleComponent />
Я попробовал решение, предложенное здесь React/JSX dynamic component names
Это дало мне ошибку при компиляции (с помощью browserify для глотка). Он ожидал XML, где я использовал синтаксис массива.
я мог бы решить эту проблему путем создания способа для каждого компонента:
newExampleComponent() {
return <ExampleComponent />;
}
newComponent(type) {
return this["new" + type + "Component"]();
}
Но это означало бы новый метод для каждого компонента я создаю. Должно быть более элегантное решение этой проблемы.
Я очень открыт для предложений.
Спасибо за помощь. Поскольку в любом случае мне придется требовать каждый компонент, я буду придерживаться своего текущего решения. Но это будет иметь в виду будущие проекты. – Sam
Будущие читатели также наверняка найдут '{... this.props}' полезным для прозрачного прохождения реквизита к подтипированным компонентам из родителя. Как 'return ' –
Также убедитесь, что вы используете имя своей динамической переменной. – saada