@Masterstvo

Можно ли передать данные динамически добавленным компонентам в реакт?

Здравствуйте!

Подскажите пожалуйста, возможно ли реализовать следующую вещь:

Обычно, что бы передать данные в компонент используют props:
<Component data={data}>

Можно ли передать данные по цепочки вниз для динамически добавленных дочерних компонентов в React? Т.е. передать данные только родительскому компоненту и чтоб они были доступны для дочерних компонентов тоже?

Например:
<Parent data={data} />
    [...ChildeComponents]
</Parent>


P.S. Redux не предлагать))
  • Вопрос задан
  • 50 просмотров
Решения вопроса 1
@davidnum95
Можно без контекста:
import React, { Component, cloneElement } from 'react';

export default class Parent extends Component {
  
  render() {
    const { data, children } = this.props;
    const childrensArray = React.Children.toArray(children);
    return (
      <div>
          {childrensArray.map((children) => cloneElement(children, { data }))}
      </div>
    );
  }
}
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
maxfarseer
@maxfarseer
https://maxpfrontend.ru, обучаю реакту и компании
Используйте context, как его использует Redux или React-router (документация)
Conext.API из 16 alpha - пока не используйте, не стабильно.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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