2016-06-01 4 views
2

У меня есть компонент, который не может традиционно наследует props от родительского компонента. Этот компонент визуализируется с помощью маршрута и не одного из родителей, я говорю о <Single /> компоненте, который является «деталь» компонентом в этой установке:Как передать реквизиты не-дочернему компоненту с помощью маршрутизатора?

<Router history={browserHistory}> 
    <Route path="/" component={App}> 
     <IndexRoute component={ProfileList} /> 
     <Route path="/profile/:username" component={Single} /></Route> 
    </Router> 

Реквизит доступен в ProfileList компоненте и этот компонент оказывает Profile компонент следующим образом:

/* ProfileList render method */ 
    render() { 
     return (
     <div> 
      {this.state.profiles.map((profile, i) => 
      <Profile {...this.state} key={i} index={i} data={profile} />)} 
     </div> 
    ); 
    } 

Я пытаюсь использовать повторно Profile компонент как в компоненте ProfileList и Single:

<Link className="button" to={`/profile/${username}`}> 
    {name.first} {name.last} 
    </Link> 

Но в Single компоненты У меня нет никакого способа доступа state или props - так что нет никакого способа рендеринга это деталь просмотра. Я знаю, что могу либо use redux for passing global state, либо использовать параметры запроса в моих Link to=""

Но я не хочу, чтобы до сих пор не хватался за редукцию и не чувствую себя хорошо в отношении параметров запроса. Итак, как мне получить доступ к чему-то вроде this.props.profiles в моем Single компоненте?

+0

Возможно, параметры маршрутизатора? http://stackoverflow.com/questions/32901538/how-does-react-router-pass-params-to-other-components-via-props – Brad

+0

no @Brad - я не хочу запрашивать параметры, если это то, что вы имеете в виду –

+0

ProfileList и Single являются родственными компонентами, то почему не удается получить статус единого доступа? – hazardous

ответ

0

Редукция connect() может полностью выполнить эту работу. Я думаю, вы должны использовать его, потому что «в порядке» вы будете переопределять соединение редукса, например

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