我之前所做的是我使用了router.replace
componentDidUpdate(prevProps) {
const { searchParams, category, keywords } = this.props;
const { router } = this.context;
router.replace({
pathname: router.location.pathname,
state: { searchParams, category, keywords },
});
}
我尝试这样做但它弄乱了我的路由器历史记录,因为它添加了相同路线的另一个历史记录。有没有其他方法可以使用我想要的更新状态更新当前路线,而不会在历史列表中添加更多内容?
我想导航到其他页面,当我按回这个特定路线时,它会保留我在导航到其他路线之前所做的所有搜索细节
答案 0 :(得分:0)
componentDidUpdate(prevProps) {
if(this.props !== prevProps) {
// actions
}
}
//尝试这可以帮助你
答案 1 :(得分:0)
您可以在调用react router的replace方法之前调用window.history.replaceState
。
componentDidUpdate(prevProps) {
const { searchParams, category, keywords } = this.props;
const { router } = this.context;
window.history.replaceState('','',router.location.pathname);
router.replace({
pathname: router.location.pathname,
state: { searchParams, category, keywords },
});
}