总而言之,我仍然希望允许用户单击按钮并进入我们的反应路由器中的视图,就像今天的工作方式一样。但是,我从不希望允许用户通过其Web浏览器中的url导航到该视图。只想永久阻止该特定视图。是否有任何简单的想法可以实现,而无需使用本地存储?
我在这里看到了一个类似的问题,但是当我只想这样针对一个特定视图时,它正在询问整个应用程序。答案似乎也涉及身份验证。 React router:I don't want user to directly navigate to pages by typing urls but allow going to pages only using links inside the app.
谢谢!
答案 0 :(得分:2)
您可以在应用程序完全加载或执行特定操作时添加特殊的
function MainMenu() {
if (Cookies.get('menuToggled') == '1') {
if (isMobileDevice()) {
$('.grid-main').css('grid-template-columns', ""); // "" resets to default
Cookies.set('menuToggled', '0');
// I do this because after every initial load, the menu must be closed in mobile view.
}
else {
$('.grid-main').css('grid-template-columns', ""); // "" resets to default
}
}
else {
if (isMobileDevice()) {
$('.grid-main').toggleClass("closedMenu");
$('.main-menu').css("display", "none");
}
else {
$('.grid-main').toggleClass("smallMenu");
$('nav span').css("display", "none");
}
}
}
/* _________________ PRE-LOADING USER-SETTINGS & COOKIE HANDLING __________________ */
$(document).ready(function(){
MainMenu();
});
/* ######################################################### */
/* ##################### DOM FUNCTIONS ##################### */
/* ######################################################### */
$( window ).resize(function() {
MainMenu();
});
。如果首次加载时没有路线或没有采取特定措施,则他无法使用url到达这些路线。