После входа в мой компонент Dashboard я не хочу, чтобы пользователь возвращался на мою страницу входа с помощью кнопки «Назад» в браузере.
Я не использую Redux, а только React.
После входа в мой компонент Dashboard я не хочу, чтобы пользователь возвращался на мою страницу входа с помощью кнопки «Назад» в браузере.
Я не использую Redux, а только React.
Я думаю, это поможет, если пользователь вошел в систему, а затем останется на той же странице.
if(loggedIn) {
history.pushState(null, null, location.href);
window.onpopstate = function(event) {
history.go(1);
};
}
Я предпочитаю использовать свой пользовательский хук для перехвата обратной навигации браузера:
import { useEffect, useRef } from "react";
// Intercepts browser's Navigate Back event
export const useNavigateBack = (callback: Function): void => {
const isInitialMount = useRef(true);
useEffect(() => {
if (isInitialMount.current) {
isInitialMount.current = false;
window.addEventListener('popstate', function(event) {
window.history.pushState(null, '', document.URL);
event.stopImmediatePropagation();
callback();
}, false);
} else {
// In my special case this fix was needeed:
// window.history.pushState(null, '', document.URL);
}
}, [callback]);
}
И теперь я могу вызвать use useNavigateBack([мой пользовательский обработчик обратной навигации]) внутри моего компонента.
Dashboard
, если пользователь уже вошел в систему, в компонентеLogin
? - person glhrmv   schedule 07.08.2017