79608214

Date: 2025-05-06 07:51:18
Score: 0.5
Natty:
Report link

When using router.query.slug in dynamic routes (/product_category/[slug]), the value may initially be undefined when navigating back. This can cause your data-fetching logic to fail or not re-run, leading to stale or missing content.

import { useRouter } from 'next/router';
import { useEffect, useState } from 'react';

export default function CategoryPage() {
  const router = useRouter();
  const { slug, isReady } = router;
  const [categoryData, setCategoryData] = useState(null);

  useEffect(() => {
    if (!isReady) return;

    const fetchData = async () => {
      const res = await fetch(`/api/category/${slug}`);
      const data = await res.json();
      setCategoryData(data);
    };

    fetchData();
  }, [slug, isReady]);

  if (!categoryData) return <div>Loading...</div>;

  return <div>{/* Render category content */}</div>;
}

Add key to Force Remount

Sometimes forcing a component remount can also help if state isn’t resetting correctly.

Reasons:
  • Long answer (-0.5):
  • Has code block (-0.5):
  • Starts with a question (0.5): When
  • Low reputation (1):
Posted by: Farhan Patel