2016-11-09 4 views
5

मैं अपने राज्य से अपने एप्लिकेशन के नेविगेशन को चलाने की कोशिश कर रहा हूं।प्रतिक्रिया-राउटर से वर्तमान स्थान कैसे प्राप्त करें?

Given the user is on the Login page 
When the application state changes to isLoggedIn 
Then the application should navigate to the Dashboard page 

यहाँ मेरी वर्तमान कार्यान्वयन जो काम करता है:: यहाँ मेरी उपयोग मामला है

if (browserHistory.getCurrentLocation().pathname === '/login' && store.isLoggedIn) { 
    browserHistory.push('/dashboard'); 
} 

दुर्भाग्य से प्रतिक्रिया रूटर डॉक्स और मुद्दों के माध्यम से जा रहा है, मैं समझता हूँ कि browserHistory.getCurrentLocation() एक अधिकारी एपीआई नहीं है और यह नहीं होना चाहिए उपयोग किया गया। क्या ऐसा करने का कोई अनुशंसित तरीका है?

पीएस इस कोड को एक घटक प्रतिक्रिया के बाहर चल रहा है, इसलिए मैं उपयोग नहीं कर सकते this.props.location.pathname

उत्तर

-2

जावास्क्रिप्ट एक विधि window.location में बनाया गया है, यहाँ डॉक्स: http://www.w3schools.com/js/js_window_location.asp। मुझे लगता है कि यह पूरा करने की कोशिश करने के लिए यह अच्छा समाधान होगा।

0
export const onAuthChange = (isAuthenticated) => { 
    const pathname = browserHistory.getCurrentLocation().pathname; 
    const isUnauthenticatedPage = unauthenticatedPages.includes(pathname); 
    const isAuthenticatedPage = authenticatedPages.includes(pathname); 

    if (isUnauthenticatedPage && isAuthenticated) { 
    browserHistory.replace('/Dashboard'); 
    } else if (isAuthenticatedPage && !isAuthenticated) { 
    browserHistory.replace('/'); 
    } 

}; 
+2

यदि आप अपना उत्तर समझाते हैं तो यह अक्सर अन्य उपयोगकर्ताओं के लिए उपयोगी होता है। भविष्य में आपका उत्तर दूसरों को अप्रत्याशित तरीकों से मदद कर सकता है लेकिन यदि यह कोड का एक ब्लॉक है तो कम संभावना है। – Brody

संबंधित मुद्दे