【发布时间】:2019-06-14 09:51:10
【问题描述】:
我阅读了有关浏览器历史记录的信息,并且了解我无权访问历史记录对象数组,甚至无法删除它们。但是,我的任务是排除在历史记录中添加参数化 URL。我的项目中有标签,它们的 URL:
/profile,
/profile?menu=1
/profile?menu=2
我在我的项目中使用 nextjs 框架。他的导航代码:
public handleOnClickItem(key: string) {
const id = '1';
const href = `/profile?id=${id}&menu=${key}`;
Router.push(href, href, { shallow: true });
// tabs are navigated
Router.onBeforeHistoryChange = (url) => {
console.log('App is changing to before history change: ', url);
};
}
我不能将此网址添加到历史记录吗?我在console.log 中得到它。而且我从方法的描述中了解到,这个 URL 不应该被载入史册。 有任何想法吗?谢谢!
【问题讨论】:
-
什么是目标....在
profile导航到之前有返回按钮返回上一个路线吗? -
示例导航:/home > /profile > /profile?menu='1' > /profile?menu='2' 当 browser.back() => 返回 /home( 从配置文件回家,好像忽略带有参数的配置文件,好像我们总是在同一个 URL 上)
-
因此您可以换种方式思考这一问题,并跟踪用户导航到个人资料并使用
Router.beforePopState拦截时的来源 -
谢谢。我会处理这个
-
那个人回答我的正确,但后来删除了,你只需要使用replace而不是push。我道歉,回复答案,我注意到它有帮助
标签: javascript reactjs browser-history next.js