2016-06-01 35 views
2

私は、親成分からpropsを伝統的に継承していないの成分を持っています。は、伝統的に親成分からpropsを継承しています。反応ルータを搭載した非子コンポーネントにどのようにプロップを渡すのですか?

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

小道具がProfileListコンポーネントとそのコンポーネントで使用できます。このコンポーネントは、ルートや親によってないを経由してレンダリングされ、私は、このセットアップの「詳細」コンポーネントがある<Single />コンポーネントについて話していますレンダリングそうのようなProfileコンポーネント:

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

私はProfileListSingle成分の両方でProfileコンポーネントを再利用しようとしています:

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

しかし、私はstateまたはpropsにアクセスする方法はありませんSingleコンポーネントで - ので、私はこの詳細を表示するレンダリングの方法がありません。 use redux for passing global stateのいずれかを使用するか、クエリパラメータを使用することができます。Link to=""

しかし、私はまだ還元剤のために手を差し伸べる必要はなく、クエリパラメータについては気にしません。では、Singleコンポーネントのthis.props.profilesのようなものにアクセスするにはどうすればよいですか?

+0

おそらくルータのパラメータ? http://stackoverflow.com/questions/32901538/how-does-react-router-pass-params-to-other-components-via-props – Brad

+0

いいえ@ブラッド - 私はparamsを照会したくありません。 –

+0

ProfileListとSingleが兄弟コンポーネントである場合、なぜSingleアクセス状態にできないのですか? – hazardous

答えて

0

redux connect()は完全にジョブを実行できます。私はあなたがそれを使用する必要があると思うので、 "うまく"あなたはあなたのような接続を再実施するでしょう

関連する問題