Closed2
React Router V6による戻る/進むボタンイベントの検出
Remixで実装しようと思って調べたら、ここで議論されていた。
そのまま引用してしまうが、こんな感じでイベントを検出できるっぽい。
useNavigationTypeが鍵か。
// listen history change and store it
function useHistoryStack() {
const [stack, setStack] = useState([]);
const { pathname } = useLocation();
const type = useNavigationType();
useEffect(() => {
if (type === "POP") {
setStack(stack.slice(0, stack.length - 1));
} else if (type === "PUSH") {
setStack([...stack, pathname]);
} else {
setStack([...stack.slice(0, stack.length - 1), pathname]);
}
}, [pathname, type]);
return stack;
}
このスクラップは2022/05/15にクローズされました