У меня есть компонент, который не может традиционно наследует 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
компоненте?
Возможно, параметры маршрутизатора? http://stackoverflow.com/questions/32901538/how-does-react-router-pass-params-to-other-components-via-props – Brad
no @Brad - я не хочу запрашивать параметры, если это то, что вы имеете в виду –
ProfileList и Single являются родственными компонентами, то почему не удается получить статус единого доступа? – hazardous