Naararouter
@Naararouter
Junior Fullstack Web Developer

Почему не работает создание React-элемента?

Здравствуйте! Интересует одна странная особенность. Приведу пример кода:
Есть объект React-Router'a, в котором формируется динамический маршрут:
{
      path: '<какой-то путь>',
      getComponent(location, cb) {
        require.ensure([], require => {
          cb(null, test());
        }, '<какой-то чанк-нейм>');
      }
    }

Задача дальнейшего кода "прокинуть" доп. свойства в корневой компонент, который мы получаем из вышеприведенного динамического роута. Пока я пытался просто отрендерить компонент без передачи доп.свойств.
function PropsPasser(element, props) {
  class WrapClass extends React.Component {
    constructor(props){
      super(props);
    }
    render(){
      //return <element />              <------- ТАК НЕ РАБОТАЕТ (пустая страница)! ПОЧЕМУ?
      return React.createElement(element)
    }
  }
  return WrapClass
}

function test(type) {
  let asyncObj = require('<какой-то путь>');
  let asyncRoute = asyncObj.default;
  let propsPasser = PropsPasser(asyncRoute, {type: "pew-pew"});
  return propsPasser;
}

Как известно из документации React, то конструкции < element / > и React.createElement(element), должны быть, по сути, идентичными. Что я упустил?
  • Вопрос задан
  • 343 просмотра
Решения вопроса 1
@Sayonji
Насколько я знаю, с маленькой буквы так можно рендерить только теги. Попробуйте
function PropsPasser(Element, props)
и
<Element />
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы