मेरे पास नीचे की तरह एक राउटर है:
<Router history={hashHistory}>
<Route path="/" component={App}>
<IndexRoute component={Index}/>
<Route path="login" component={Login}/>
</Route>
</Router>
यहाँ मैं क्या हासिल करना चाहता हूँ:
/login
यदि लॉग इन न हो तो उपयोगकर्ता को पुनर्निर्देशित करें- यदि उपयोगकर्ता प्रवेश करने का प्रयास
/login
करते हैं, तो वे पहले से लॉग इन हैं, उन्हें रूट करने के लिए पुनर्निर्देशित करें/
तो अब मैं में उपयोगकर्ता की स्थिति जांचने के लिए कोशिश कर रहा हूँ App
की componentDidMount
, तो कुछ ऐसे कार्य करें:
if (!user.isLoggedIn) {
this.context.router.push('login')
} else if(currentRoute == 'login') {
this.context.router.push('/')
}
यहाँ समस्या यह है कि मुझे वर्तमान मार्ग प्राप्त करने के लिए एपीआई नहीं मिल रहा है।
मैंने पाया कि यह बंद मुद्दा Router.ActiveState मिक्सिन और रूट हैंडलर्स का उपयोग करके सुझाया गया है, लेकिन ऐसा लगता है कि ये दो समाधान अब अपदस्थ हैं।