Задать вопрос
@KnightForce

Компоненты высшего порядка способ вернуть props.children из render?

Решил написать небольшую библиотеку.
Написал компонент, который берет одного потомка, пробрасывает ему в props данные и должен вернуть этого потомка:
let props = this.props;
let child = Children.only(props.children);
return cloneElement(child, Object.assign({}, props, {data: "Данные"}));


render:
render() {
    let El = this.renderChildren(this.props);
    return (
      <El />
    );
  }


Но выдает ошибку:

Element type is invalid: expected a string (for built-in components) or a class/function (for composite components) but got: object. Check the render method of `MyComponent`.


Как лучше реализовать такой подход?
  • Вопрос задан
  • 404 просмотра
Подписаться 1 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Мидл фронтенд-разработчик
    5 месяцев
    Далее
  • Javascript.ru
    Курс по React
    5 недель
    Далее
  • Нетология
    Fullstack-разработчик на Python + нейросети
    20 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 1
return (
   <El />
)


Это верно, если El - компонент. А у вас El - это реакт элемент (инстанс компонента). Так что просто возвращайте его:

render() {
    return this.renderChildren(this.props);
  }
Ответ написан
Ваш ответ на вопрос

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

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