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 Linkbileşen veya Redirectbileşen için
<Link to={{
pathname: '/template',
search: '?query=abc',
state: { detail: response.data }
}}> My Link </Link>
ve sonra /templaterota 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>'seş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 }.
Routeerişimi olmalıdırthis.props.location,this.props.historyvb ben kullanmak gerekmez düşünüyorumrefv4 ile artık.this.props.history.push('/template');