@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`.


Как лучше реализовать такой подход?
  • Вопрос задан
  • 400 просмотров
Пригласить эксперта
Ответы на вопрос 1
return (
   <El />
)


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

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

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

Войти через центр авторизации
Похожие вопросы