Pertama-tama, Anda tidak perlu melakukan var r = this;ini karena if statementmerujuk pada konteks panggilan balik itu sendiri yang karena Anda menggunakan fungsi panah mengacu pada konteks komponen Bereaksi.
Menurut dokumen:
objek sejarah biasanya memiliki properti dan metode berikut:
Jadi saat menavigasi Anda dapat melewati alat peraga ke objek sejarah seperti
this.props.history.push({
pathname: '/template',
search: '?query=abc',
state: { detail: response.data }
})
atau sama untuk Linkkomponen atau Redirectkomponen
<Link to={{
pathname: '/template',
search: '?query=abc',
state: { detail: response.data }
}}> My Link </Link>
dan kemudian di komponen yang dirender dengan /templaterute, Anda dapat mengakses alat peraga yang dilewati seperti
this.props.location.state.detail
Juga perlu diingat bahwa, ketika menggunakan objek riwayat atau lokasi dari alat peraga Anda harus menghubungkan komponen dengan withRouter.
Sesuai Dokumen:
denganRouter
Anda bisa mendapatkan akses ke properti objek sejarah dan <Route>'skecocokan terdekat
melalui komponen withRoutertingkat tinggi. withRouter
akan merender ulang komponennya setiap kali rute berubah dengan alat peraga yang sama dengan <Route>render props: { match, location, history }.
Routeharus memiliki akses kethis.props.location,this.props.history, dll saya pikir Anda tidak perlu menggunakanreflagi dengan v4. Coba lakukanthis.props.history.push('/template');