सबसे पहले, आप if statement
में इस रूप में var r = this;
करने की जरूरत नहीं कॉलबैक ही जो जब से तुम तीर समारोह का उपयोग कर रहे प्रतिक्रिया घटक संदर्भ को संदर्भित करता के संदर्भ को दर्शाता है।
डॉक्स के अनुसार:
इतिहास वस्तुओं आम तौर पर निम्नलिखित गुण और विधियों है:
तो तुम
this.props.history.push({
pathname: '/template',
search: '?query=abc',
state: { detail: response.data }
})
या लिंक घटक के लिए इसी तरह
<Link to={{
pathname: '/template',
search: '?query=abc',
state: { detail: response.data }
}}> My Link </Link>
और की तरह इतिहास वस्तु को पास सहारा पारित कर सकते हैं नेविगेट जबकि उसके घटक है जो /template
साथ प्रदान की गई है में मार्ग, आप
this.props.location.state.detail
जैसे पारित प्रोप तक पहुंच सकते हैं
यह भी ध्यान रखें कि, जब प्रोप से इतिहास या स्थान ऑब्जेक्ट का उपयोग करते हैं तो आपको घटक को withRouter
से कनेक्ट करने की आवश्यकता होती है।
डॉक्स के अनुसार:
withRouter
आप इतिहास ऑब्जेक्ट के गुणों और withRouter
उच्च क्रम घटक के माध्यम से सबसे करीब <Route>'s
मैच के लिए उपयोग कर सकते हैं। withRouter
हर बार मार्ग के साथ <Route>
props: { match, location, history }
प्रस्तुत करने के साथ बदलता है, इसके घटक को फिर से प्रस्तुत करेगा।
स्रोत
2017-07-23 08:41:20
घटक है कि प्रदान की गई है की जाँच एक 'Route' द्वारा करने के लिए' this.props.location', 'this.props.history' पहुंच होनी चाहिए, आदि। मुझे लगता है कि आपको v4 के साथ अब 'ref' का उपयोग करने की आवश्यकता नहीं है। 'This.props.history.push ('/ template') करने का प्रयास करें;' – saadq
यह रेफरी नहीं है, यह चर है जो इस पर इशारा करता है; this.props.history.push ('/ टेम्पलेट'); मुझे अगले पृष्ठ पर ले जाएं, लेकिन मैं उनके साथ प्रोप पास करना चाहता हूं .ref = यह; – IshanGarg
आप मार्ग से मेल खाने वाले घटक को 'प्रोप' पास करने का प्रयास कर रहे हैं? मुझे लगता है [यह गिटहब थ्रेड] (https://github.com/ReactTraining/react-router/issues/4105) आपकी चिंता का समाधान करता है। – saadq