2015-09-15 4 views
0

У меня есть компонент, который выглядит как код ниже, и мне нужен способ изнутри SearchBox, чтобы узнать значение его родительского (SearchContainer) имеет набор атрибутов withFilter.Доступ к родительскому указателю/атрибуту из дочернего компонента

Еще лучше, если есть способ для SearchContainer, чтобы обнаружить, если он имеет SearchFilter компонент внутри него, а так я могу избавиться от этого атрибута и SearchBox знать, как хорошо.

<SearchContainer withFilter> 
    <SearchFilter>Filter Orders</SearchFilter> 
    <SearchBox/> 
</SearchContainer> 

ответ

1

Как дизайнерский подход, SearchContainer должен иметь опору, которая решает, если он показывает SearchFilter или нет.

var hasFilter = true; 
return (
    <SearchContainer withFilter={hasFilter}> 
     {withFilter ? <SearchFilter>Filter Orders</SearchFilter> : null} 
     <SearchBox withFilter={hasFilter} /> 
    </SearchContainer> 
); 

Вы должны использовать this.props.withFilter внутри render из SearchContainer в вашем коде.

+0

Это замечательно, распространяйте все реквизиты! – ThomasReggi

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