复写 pushState 和 replaceState 的时候有问题
https://github.com/ice-lab/icestark/blob/master/packages/icestark/src/start.ts#L94
在 start 的时候调用 hijackHistory 复写 pushState 和 replaceState,这时拿到的 originalPush 不是最新的,因为在 start 之前,同样有二方库(比如 aem )复写了 pushState 和 replaceState,导致最终执行 start 的时候,代码的 originalPush 和 originalReplace 引用的还是老的,而 aem 复写的就不生效了。正确做法是在执行 hijackHistory 的时候,赋予 originalPush 和 originalReplace 当前的值。
这个问题是指 hijackHistory 执行时机过早,在执行时没有将已被复写的 pushState 和 replaceState 给劫持到?
这个问题是指 hijackHistory 执行时机过早,在执行时没有将已被复写的 pushState 和 replaceState 给劫持到?
不是哦,是执行 hijackHistory 拦截的时候,没有使用 "已被复写的 pushState 和 replaceState",导致在 hijackHistory 执行前,其他复写的逻辑失效了。
@beyondxgb 对于这个场景不是很清楚,可以尝试直接给我们 PR
@beyondxgb 对于这个场景不是很清楚,可以尝试直接给我们 PR
已经提了,麻烦看看 https://github.com/ice-lab/icestark/pull/700