I’ve two routes like,
app/products
=> pages/products/index.js
app/products/1
=> pages/products/[page].js
Here both app/products
and app/product/1
will render the same content (same product items), is it possible to render app/products/1
content in app/products
without writing duplicate code? I could find anything similar in their documentation.
Thanks.
Advertisement
Answer
The easiest way is to abstract the content from the page level. No need for tricky code here. pages/products/index.js:
import { ProductPageContent } from 'components/ProductPageContent'; import { getProductData } from 'lib/productData'; export default function ProductsIndexPage() { return <ProductPageContent /> } export async function getStaticProps() { const productData = await getProductData(); return { productData, } }
pages/products/[page].js:
import { ProductPageContent } from 'components/ProductPageContent'; import { getProductData } from 'lib/productData'; export default function ProductPagePage() { return <ProductPageContent /> } export async function getStaticProps() { const productData = await getProductData(); return { productData, } }