2016-11-09 16 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()は公式APIではないことを理解し、反応し、ルータのドキュメントや課題を通過して、それはすべきではありません中古。これを行うための推奨される方法はありますか?

P.S.このコードが反応成分の外に実行されているので、私はthis.props.location.pathname

答えて

-2

Javascriptが方法window.location、HERESにドキュメントに組み込まれています使用することはできません: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

関連する問題