Next.js, what to do when the state of a component is not refreshed when navigating
I ran in this issue, basically my component has an useState() hook to set some variables and the state was not updated when navigating with the router.
Turns out my custom _app.js
, which I copied from the tutorial and was just used to add global styling to the app, had this code:
export default function App({ Component, pageProps }) {
return <Component {...pageProps} />
}
I changed it to:
import { useRouter } from 'next/router'
export default function App({ Component, pageProps }) {
const router = useRouter()
return <Component {...pageProps} key={router.asPath} />
}
and it worked again as expected.
I just had to add the path as key.
→ Here's my latest YouTube video
→ Get my Next.js (pages router) Handbook
→ I wrote 17 books to help you become a better developer, download them all at $0 cost by joining my newsletter
→ JOIN MY CODING BOOTCAMP, an amazing cohort course that will be a huge step up in your coding career - covering React, Next.js - next edition February 2025