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.
→ Get my Next.js (pages router) Handbook
→ I wrote 17 books to help you become a better developer:
- C Handbook
- Command Line Handbook
- CSS Handbook
- Express Handbook
- Git Cheat Sheet
- Go Handbook
- HTML Handbook
- JS Handbook
- Laravel Handbook
- Next.js Handbook
- Node.js Handbook
- PHP Handbook
- Python Handbook
- React Handbook
- SQL Handbook
- Svelte Handbook
- Swift Handbook
Also, 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