Closed2

React Router V6による戻る/進むボタンイベントの検出

smallStallsmallStall

そのまま引用してしまうが、こんな感じでイベントを検出できるっぽい。
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;
}

https://reactrouter.com/docs/en/v6/hooks/use-navigation-type

このスクラップは2022/05/15にクローズされました