Her şeyden önce, yapmanız gerekmez var r = this;
bu in gibiif statement
callback'inde kendisi bağlamında atıfta bileşen bağlamı Tepki atıfta hangi ok fonksiyonu kullanılarak beri.
Dokümanlara göre:
geçmiş nesneleri genellikle aşağıdaki özelliklere ve yöntemlere sahiptir:
Böylece navigasyon yaparken, sahne nesnesini
this.props.history.push({
pathname: '/template',
search: '?query=abc',
state: { detail: response.data }
})
veya benzer şekilde Link
bileşen veya Redirect
bileşen için
<Link to={{
pathname: '/template',
search: '?query=abc',
state: { detail: response.data }
}}> My Link </Link>
ve sonra /template
rota ile oluşturulan bileşende , aşağıdaki gibi geçirilen desteklere erişebilirsiniz
this.props.location.state.detail
Ayrıca, sahne malzemelerinden geçmiş veya konum nesnelerini kullanırken bileşeni bağlamanız gerektiğini unutmayın withRouter
.
Dokümanlara göre:
withRouter
Geçmiş nesnesinin özelliklerine ve en yakın
<Route>'s
eşleşmeye withRouter
üst düzey bileşen aracılığıyla erişebilirsiniz . withRouter
rota <Route>
render ile aynı sahne ile her değiştiğinde bileşenini yeniden oluşturur props: { match, location, history }
.
Route
erişimi olmalıdırthis.props.location
,this.props.history
vb ben kullanmak gerekmez düşünüyorumref
v4 ile artık.this.props.history.push('/template');