猿问

react-router历史记录问题

假设有A、B、C、D四个页面:A -> B -> C -> D,也就是从A页面跳转到B页面再到C页面最后到D页面,都是用history中的push方法进行跳转的。

两个场景:

  1. 第一个场景,最后跳到D页面,能不能清除之前所有历史记录,也就是history只有D页面?

  2. 第二个场景,在还没跳转到D页面,B可以前进到C页面,C页面可以后退到B页面,一旦C页面前进到D页面,这时候点击浏览器的后退按钮,能不能直接退回到A页面,不后退到B或C页面?

请问有没有对应的解决方案?


千巷猫影
浏览 1056回答 2
2回答

拉莫斯之舞

使用 history.replaceState() 方法,只保留 D 页面的记录监听 popstate 事件$(window).on('popstate', function () {    // 省略了逻辑判断    window.history.go(-3);});
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答