React.createElement
нужен класс / функция компонента для создания компонентов, а не строка. Строки предназначены только для создания элементов DOM, и они должны начинаться со строчной буквы.
Сделайте это вместо:
import Package from '...';
React.createElement(Package, ...);
Если вам нужно параметризовать создание элементов, вы можете просто передать типы компонентов вокруг, как и любая другая переменная. Например, если вы хотите изменить makeListOfTypedItems
на использование типа компонента dynamici c, он может выглядеть примерно так (извините, не поймите намерения вашего исходного кода, поэтому они могут не соответствовать вашим ожиданиям):
import { ComponentType } from 'react';
// ...
export class SubjectDashboardUtils {
static makeListOfTypedItems<
DataType,
Cmp extends ComponentType<{ data: DataType }>
>(list: Array<DataType>, DynamicComponent: Cmp) {
return list.map((item, key) => <DynamicComponent key={key} data={item}/>);
}
}
Это будет называться как:
SubjectDashboardUtils.makeListOfTypedItems(items, Package);