2016-03-11 5 views
1

У меня есть следующие маршруты:Как узнать, какой компонент был создан с помощью React Router?

<Route path="/" component={App}> 
    <IndexRoute components={Home}/> 
    <Route path="/blog/:blogNo/:filter" component={Home}/> 
    <Route path="/blog/:blogNo" component={Home}/> 
    <Route path="/:filter" component={Home}/> 
    <Route path="/all" component={Home}/> 
    <Route path="/terms" component={Terms}/> 
    <Route path="/privacy" component={Privacy}/> 
    <Route path="/news/:newsNo" component={News}/> 
    <Route path="/list/:listNo" component={List}/> 
</Route> 

Примечание 4 маршрутов дома. В рендеринге моего App.js я хочу выяснить, какой компонент создан, т. Е. «Главная», «Новости», «Условия», «Конфиденциальность» или «Список».

Я пытаюсь использовать this.context.router.isActive(""), но я не уверен, как передать знак или подстановочный знак, например :filter или :blogNo.

Как узнать, какой компонент создан в React Router?

Примечание Я использую реагировать маршрутизатору 2.0.0

+0

вы могли бы просто сделать это.props.children.type.name', что дало бы вам имя компонента – knowbody

+0

@knowbody Я попробовал 'this.props.children.type.displayName', но в процессе производства я обнаружил, что мой код не запускался. Я предполагаю, что может быть оптимизирован в производстве –

+0

, что вы пытаетесь сделать, возможно, есть другой способ – knowbody

ответ

1

Для примера меню, вы хотите следовать документации named components. Этот шаблон разработан, чтобы иметь отдельный компонент меню, точно так же, как вы описали свою ситуацию.

+0

Как это говорит мне название компонента? this.props.main может быть либо пользователями, либо группами в этом примере. –

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