Я пытаюсь перебрать всех детей и добавить к ним опору. Проблема в том, что это работает для всех ближайших детей, но «внуки», если хотите, также не получают новые реквизиты. Вот фрагмент кода:Реагировать: создать новый элемент из всех детей при добавлении реквизита
React.Children.map(this.props.children, child =>
React.createElement(
child.type,
Object.assign({}, {...child.props}, {newProp: "test"}),
)
)
Все непосредственные дети сохраняют свои реквизита, а также усиление prop.newProp
и внуки также возвращаются, но без newProp
. Передача детей в как так и не работает:
React.Children.map(this.props.children, child =>
React.createElement(
child.type,
Object.assign({}, {...child.props}, {newProp: "test"}),
child.props.children
)
)
Edit:
- Plain старые ReactJS ответы пожалуйста, без использования дополнительных библиотек, таких как Redux.
Почему родитель должен распространять реквизит для внуков, а не для самих детей? –
Он предназначен для распространения реквизита для детей. И внуки. – Nate
И великие дети? Я думаю, что когда вы пытаетесь сделать что-то подобное, вы должны смотреть на «контекст», это то же самое, что и реквизит, но будет автоматически распространяться на всех детей, а все внуки ... взгляните на документ, это хорошая функция https: //facebook.github.io/react/docs/context.html –