Есть вот такой код:
import React, {useState, useEffect} from 'react';
import { Container } from 'react-grid-system';
import Header from '../../ui/header';
import Footer from '../../ui/footer';
export default (props) => {
const DynPage = require('./' + props.name);
return(
<div>
<Header />
<Container>
<DynPage />
</Container>
<Footer />
</div>
)
}
Это база, добавится еще несколько эффектов, но даже в таком состоянии он не функционирует.
Пишет вот такую ошибку:
Warning: React.createElement: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: object.
Uncaught Invariant Violation: Element type is invalid: expected a string (for built-in components) or a class/function (for composite components) but got: object.
Из кода идея понятна, но постараюсь объяснить. Я хочу из одного компонента (index.js) подгружать "глупые" компоненты, которые лежат рядом. Все они идентичны, и всем нужен один и тот же функционал, меняется только текст. Именно поэтому вынес только текст в сторонние файлы.
Код работает, если выполнить import заранее и потом создать что то в духе асс. массив, где перечислены все компоненты, но это очень грязно, хотелось бы вот таким способом. В дальнейшем оберну в try...catch
P.S. props.name передается из роутера, с ним все ок