2016-10-20 2 views
0

У меня есть родительский компонент, который загружает некоторые данные из бэкэнд в методе componentWillMount. Это происходит из одной конечной точки конфигурации, которая должна быть вызвана только один раз. Что бы я хотел сделать, загрузите данные в его родительский компонент, а затем оберните несколько дочерних компонентов этим состоянием. Чтобы контекстуализировать это, родительский компонент представляет собой навигационную панель и нижний колонтитул для панели управления, дети будут отображаться в этой информационной панели, то есть на странице панели инструментов. Документация React-Router объясняет, что {this.props.children} является предпочтительным методом для обработки этого, но, похоже, не объясняет, как передать состояние детям. Как мне это сделать?Как передать состояние от родителя (компонента-обертки) к его дочерним элементам с помощью реагирующего маршрутизатора?

Также может быть стоит иллюстрирующую мои маршруты:

<Router history={browserHistory}> 
    <Route path='/' onEnter={redirectWww} /> 
    <Route 
     path='/dashboard' 
     component={DashboardContainerWrapper} 
     onEnter={requireAuth}> 
     <Route path='/dashboard/' component={DashboardIndex}/> 
     <Route path='/dashboard/some/view' component={DashboardSomeView}/> 
    </Route> 
</Router> 

ответ

1

На самом деле просто нужно было сделать что-то подобное сегодня. Что я сделал, я использовал React.cloneElement, чтобы ввести родительские компоненты в дочерние компоненты. В вашем методе визуализации

{React.Children.map(this.props.children, (child) => 
    React.cloneElement(child, {...this.state}) 
)} 
+0

Это, похоже, не работает. Чтобы уточнить, я хочу скопировать состояние родителя в дочерний элемент как состояние ребенка. Вместо этого мне нужно будет разбить это на две конечные точки. – maxcountryman

Смежные вопросы