如何解决如何在不重新渲染整个应用程序的情况下更新URL并替换React Router v5中的历史记录状态?
在使用React Router及其浏览器历史记录时,有几种情况会触发重新渲染,而我希望在不重新渲染整个应用程序的情况下这样做:
-
使用history.replace('currentPath',{data:'someState'};
-
在URL中添加诸如“?active = 1”之类的参数。
是否有办法做到这一点,或者解决方案是优化某些组件的性能?
解决方法
您可以像这样使用history.replaceState()
:
const setQueryParams = (param,value) => {
const history = window.history;
let currentUrlParams = new URLSearchParams(window.location.search);
currentUrlParams.set(param,value);
const url = `${window.location.pathname}?${currentUrlParams.toString()}`;
history.replaceState({},'',url);
};
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。