जब आप अपने ऐप में एक मुख्य पृष्ठ घटक शामिल करते हैं, तो इसे अक्सर <Route>
इस तरह से एक घटक में लपेटा जाता है :
<Route path="/movies" component={MoviesIndex} />
ऐसा करने से, MoviesIndex
घटक के पास पहुंच होती है this.props.history
ताकि वह उपयोगकर्ता को पुनर्निर्देशित कर सके this.props.history.push
।
कुछ घटक (आमतौर पर हेडर कंपोनेंट) हर पेज पर दिखाई देते हैं, इसलिए इसमें लिपटे नहीं होते हैं <Route>
:
render() {
return (<Header />);
}
इसका अर्थ है कि शीर्ष लेख उपयोगकर्ता को पुनर्निर्देशित नहीं कर सकता है।
इस समस्या को हल करने के लिए, हेडर घटक को एक withRouter
फ़ंक्शन में लपेटा जा सकता है , या तो जब इसे निर्यात किया जाता है:
export default withRouter(Header)
यह Header
घटक को एक्सेस देता है this.props.history
, जिसका अर्थ है कि हेडर अब उपयोगकर्ता को रीडायरेक्ट कर सकता है।
withRouter
यह भी एक्सेस देता हैmatch
औरlocation
। यह अच्छा होगा यदि स्वीकृत उत्तर में उल्लेख किया गया है कि, चूंकि पुनर्निर्देशित करना उपयोगकर्ता के लिए एकमात्र उपयोग मामला नहीं हैwithRouter
। यह एक अच्छा आत्म-अन्यथा है।