2016-11-09 17 views
5

Tôi đang cố gắng điều hướng ứng dụng của tôi từ trạng thái của nó. Đây là trường hợp sử dụng của tôi:Cách nhận vị trí hiện tại từ bộ phản ứng-bộ định tuyến?

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

Dưới đây là thực hiện hiện tại của tôi mà hoạt động:

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

Đáng tiếc là trải qua phản ứng-router tài liệu và các vấn đề, tôi hiểu rằng browserHistory.getCurrentLocation() không phải là một API chính thức và nó không nên đã sử dụng. Có cách nào được khuyến nghị để làm điều này không?

P.S. Mã này đang chạy bên ngoài thành phần React, vì vậy tôi không thể sử dụng this.props.location.pathname

Trả lời

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

Thường hữu ích cho những người dùng khác nếu bạn giải thích câu trả lời của mình. Trong tương lai, câu trả lời của bạn có thể giúp người khác theo những cách bất ngờ nhưng điều đó ít có khả năng hơn nếu nó chỉ là một khối mã. – Brody

Các vấn đề liên quan