2016-03-21 4 views
2

Я использую реагировать-маршрутизатор 2. Мои маршруты определяются какотключить кнопку назад в среагировать-маршрутизатор 2

<Route path="/" component={App}> 
     <IndexRoute component={Home}/> 
     <Route path="/about" component={About}/> 
     <Route path="/login" component={Login} onEnter={redirectToDashboard}/> 
     <Route path="/logout" component={Logout} onEnter={logoutSession}/> 
     <Route path="/dashboard" component={Dashboard} onEnter={redirectToLogin}/> 
    </Route> 

Все работает нормально, но у меня возникают проблемы, отключив кнопку назад с моей страницы приборной панели.

После успешного входа в систему я перенаправляю пользователя на страницу панели мониторинга, но когда пользователь нажимает кнопку «Назад», он снова переходит на страницу входа в систему. Я хочу отключить кнопку возврата browser, когда пользователь находится на странице панели.

ответ

8

Лучше всего, когда пользователь вводит имя пользователя, он перенаправляется на dashbaord. если по какой-то причине пользователь нажимает на кнопку назад, вы должны:

, если пользователь вошел в пребывания на странице приборной панели

if(logged) { 
    history.pushState(null, null, location.href); 
    window.onpopstate = function(event) { 
    history.go(1); 
    }; 
} 

это не удастся вернуться.

2

Невозможно отключить кнопки браузера. Мой совет - перенаправить пользователя на страницу приборной панели, если он/она зарегистрирован

2

На самом деле вы не можете отключить назад button. Вы можете использовать взломать, предотвращая действие «» браузера «». Просто добавьте в Dashboard компонент compnentWillMount() метода жизненного цикла некоторый код, который будет запускать «вперед» действия браузера:

componentWillMount() { 
    setTimeout(() => { 
    window.history.forward() 
    }, 0) 
    window.onunload=function(){null}; 
} 

Но наиболее вероятно, лучшим решением было бы некоторые Перенаправление на основе пользователей, зарегистрированных государством.