Saat Anda menyertakan komponen halaman utama dalam aplikasi Anda, itu sering kali dibungkus dengan <Route>
komponen seperti ini:
<Route path="/movies" component={MoviesIndex} />
Dengan melakukan ini, MoviesIndex
komponen memiliki akses this.props.history
sehingga dapat mengarahkan pengguna this.props.history.push
.
Beberapa komponen (biasanya komponen header) muncul di setiap halaman, jadi tidak digabungkan dalam <Route>
:
render() {
return (<Header />);
}
Artinya, header tidak dapat mengarahkan pengguna.
Untuk mengatasi masalah ini, komponen header bisa dibungkus dalam sebuah withRouter
fungsi, baik saat diekspor:
export default withRouter(Header)
Ini memberikan Header
akses komponen ke this.props.history
, yang berarti header sekarang dapat mengarahkan pengguna.
withRouter
juga memberikan akses kepadamatch
danlocation
. Alangkah baiknya jika jawaban yang diterima menyebutkan bahwa, karena mengarahkan pengguna bukan satu-satunya kasus penggunaanwithRouter
. Sebaliknya, ini adalah qna diri yang bagus.