I got a problem with my dynamic route. It look like this
[lang]/abc
I am trying to get query value from [lang]
but when I using
This is a good work, I found around from this comment
Add useQuery.ts
helper file
// useQuery.js
import { useRouter } from 'next/router';
// Resolves query or returns null
export default function useQuery() {
const router = useRouter();
const hasQueryParams =
/\[.+\]/.test(router.route) || /\?./.test(router.asPath);
const ready = !hasQueryParams || Object.keys(router.query).length > 0;
if (!ready) return null;
return router.query;
}
usage
// In your components (instead of useRouter)
const query = useQuery();
useEffect(() => {
if (!query) {
return;
}
console.log('my query exists!!', query);
}, [query]);