सबसे पहले, तुम क्या जरूरत नहीं है var r = this;
के रूप में इस में if statement
जो जब से तुम तीर समारोह का उपयोग कर रहे संदर्भित करता घटक संदर्भ प्रतिक्रिया करने के लिए कॉलबैक के संदर्भ को दर्शाता है।
डॉक्स के अनुसार:
इतिहास की वस्तुओं में आमतौर पर निम्नलिखित गुण और विधियाँ होती हैं:
इसलिए नेविगेट करते समय आप इतिहास की वस्तु की तरह प्रॉपर पास कर सकते हैं
this.props.history.push({
pathname: '/template',
search: '?query=abc',
state: { detail: response.data }
})
या इसी तरह Link
घटक या Redirect
घटक के लिए
<Link to={{
pathname: '/template',
search: '?query=abc',
state: { detail: response.data }
}}> My Link </Link>
और फिर घटक में जो /template
मार्ग के साथ प्रदान किया जाता है, आप पास किए गए प्रॉपर तक पहुंच सकते हैं
this.props.location.state.detail
यह भी ध्यान रखें कि, प्रॉप्स से इतिहास या स्थान ऑब्जेक्ट का उपयोग करते समय आपको घटक को कनेक्ट करने की आवश्यकता होती है withRouter
।
डॉक्स के अनुसार:
withRouter
आप उच्च-क्रम घटक के <Route>'s
माध्यम से इतिहास ऑब्जेक्ट के गुणों और निकटतम मिलान तक पहुंच प्राप्त कर सकते हैं
withRouter
। रेंडर के withRouter
रूप में एक ही सहारा के साथ मार्ग परिवर्तन हर बार अपने घटक को फिर से प्रस्तुत करना होगा ।<Route>
props: { match, location, history }
Route
के लिए उपयोग किया जाना चाहिएthis.props.location
,this.props.history
आदि मैं आप का उपयोग करने की जरूरत नहीं लगता हैref
v4 वाले अब और। करने की कोशिश करेंthis.props.history.push('/template');