Fix unexpected history back navigations (#1424)
This commit is contained in:
parent
b5542462ac
commit
4082143e10
@ -124,18 +124,20 @@ export default function useHistoryBack(
|
|||||||
} else {
|
} else {
|
||||||
const prev = prevHashes || [];
|
const prev = prevHashes || [];
|
||||||
if (prev.length < hashes.length) {
|
if (prev.length < hashes.length) {
|
||||||
const index = ++historyState.currentIndex;
|
setTimeout(() => {
|
||||||
historyState.currentIndexes.push(index);
|
const index = ++historyState.currentIndex;
|
||||||
|
historyState.currentIndexes.push(index);
|
||||||
|
|
||||||
window.history.pushState({
|
window.history.pushState({
|
||||||
index,
|
index,
|
||||||
state: currentState,
|
state: currentState,
|
||||||
}, '', `#${hashes[hashes.length - 1]}`);
|
}, '', `#${hashes[hashes.length - 1]}`);
|
||||||
|
|
||||||
indexHashRef.current.push({
|
indexHashRef.current.push({
|
||||||
index,
|
index,
|
||||||
hash: hashes[hashes.length - 1],
|
hash: hashes[hashes.length - 1],
|
||||||
});
|
});
|
||||||
|
}, 0);
|
||||||
} else {
|
} else {
|
||||||
const delta = prev.length - hashes.length;
|
const delta = prev.length - hashes.length;
|
||||||
if (isHashChangedFromEvent.current) {
|
if (isHashChangedFromEvent.current) {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user