Javascript 反应:更改url而无需重新提交;使用window.history?
我的react应用程序中有一个“设置”页面。该页面有多个选项卡,用于呈现设置的不同部分 如果用户可以与其他用户共享URL,那么UX会更好 我想要的是(在“设置”页面内):Javascript 反应:更改url而无需重新提交;使用window.history?,javascript,reactjs,Javascript,Reactjs,我的react应用程序中有一个“设置”页面。该页面有多个选项卡,用于呈现设置的不同部分 如果用户可以与其他用户共享URL,那么UX会更好 我想要的是(在“设置”页面内): 用户A单击一个选项卡 url随#选项卡名的追加而改变 用户A将该url发送给用户B,用户B打开该url 用户B看到的选项卡与用户A相同 但使用react router,如果url发生更改,整个页面将重新呈现: 从“react router dom”导入{withRouter} 常量MyComp=(道具)=>{ ... 常量on
#选项卡名
的追加而改变从“react router dom”导入{withRouter}
常量MyComp=(道具)=>{
...
常量onTabChange=()=>{
//在此处追加#tabname
props.history.replace(…);//或'push`
...
}
...
使用路由器导出默认值(mycop)
}
经过大量搜索,我找到了使用窗口的解决方案。历史记录:
const onTabChange=()=>{
window.history.pushState(null,null,#tabname”);
...
}
这确实起到了作用,但信息和解释很少,我很想知道使用这一技巧的后果
这是一个有效的解决方案(对于react应用程序)?这会引起什么问题吗
(注:我知道如何解析url)
更多详细信息:
更具体地说,所有页面都有一个AuthChecker
包装器。当react路由器的位置更改时,它会检查路由的允许身份验证和当前用户的身份验证
我尝试了/path/:id
,但所有内容都更改了位置,所以进行了身份验证并重新浏览页面
我放弃了react router中的一个解决方案,只想知道:在react应用程序中使用react router管理路由时,使用窗口更改url是否安全。历史记录
所以它说window有一个名为history的属性,并且有一个关于history的方法,可以帮助您在不理解历史的情况下更新历史状态
像这样:
window.history.replaceState(null, 'New Page Title', '/new_url');
这回答了你的问题吗?