🍟

Next.jsのDynamic Routesの変更を検知する

2021/10/09に公開

超短備忘録です。

pages/hoge/[...path].tsx みたいなものを作ると hoge から始まるRouteはすべてここにマッチするわけで、例えば /hoge/aaa から /hoge/bbb に遷移するとき、何も考えずに useEffect しても発火しません。

かといって、以下のようにすると無限ループになります。

const router = useRouter()
const [...path] = router.query.path as string[] | undefined ?? []

useEffect(() => {
  console.log('hello~~')
}, [path])

正解はこっち。

const router = useRouter()

useEffect(() => {
  console.log('hello~~')
}, [router])

思うより router は賢かった。

GitHubで編集を提案

Discussion