ReactアプリケーションをContainerとPresentationコンポーネントで少しきれいにしようとしています。私は反応し、ルータのV4を使用していると私は、以前に特定のジョブのページを表示するには、各job
ためのonClickイベントを使用:ルータの履歴をonClickのコンポーネントに渡す
<div onClick={() => this.props.history.push('/jobs/' + job.slug)}>
//The job info
</div>
今、私のような仕事のために別のファイルにダムのコンポーネントを作成しましたこの:
const Jobs = (props) => (
<div>
{
props.jobs.map(job =>
<div key={job.slug} onClick(//todo)>
<p>{job.title} at <Link to="/">{job.company}</Link></p>
</div>
)
}
</div>
)
が、私はできなくなっアクセスthis.props.history
どのように私はこの問題を解決することができますか?コンポーネントの小道具を経由してルータオブジェクト(match
、history
とlocation
)にアクセスするには
<Jobs jobs={jobs}/>
ありがとうございました。 'Jobs'はRoute経由で直接レンダリングされません。これは、示されているように別のファイルのconstです。このようなことはできないでしょうか? – tommyd456
どのように 'ジョブ 'をレンダリングしますか?それについて何も言えないことを見ずに。 –
'Jobs'は、Containerコンポーネントの' render() 'メソッドの中から呼び出されます。 – tommyd456