Я занимаюсь разработкой сайта для электронной коммерции, используя Next JS.
Я получу список продуктов на странице /products
. При нажатии на любой продукт я перейду к /details/[productId]
и получу подробную информацию о продукте следующим образом.
// In /details/[productId].js file
export async function getServerSideProps({params}) {
const res = await fetch(`https:my-api-url/api/products/${params.productId}`)
const product = await res.json()
return {
props: {
product
}
}
}
Проблема
Все выглядит хорошо до этого шага. Но я подумал уменьшить количество операций чтения из базы данных, поэтому вместо того, чтобы снова извлекать сведения о продукте на странице detail
, я планировал использовать данные, полученные на предыдущей странице (/products
), которые будут содержать информацию о продукте. Следовательно, мне нужен способ передать этот объект продукта на следующий экран /details/[productId]
getServerSideProps (для достижения SSR для целей SEO).
Обходной путь
Одно решение I в настоящее время есть stringify
продукт json и передача его через параметр запроса и возврат его в getServerSideProps({params, query})
. Но это просто спам мой URL в браузере, который выглядит не очень хорошо.
Ожидание
Есть ли другой способ передачи данных в функцию getServerSideProps
, чтобы она использовала данные для генерации всей страницы на самом сервере. Пожалуйста, направьте меня, чтобы преодолеть эту проблему. Любая помощь будет оценена.
Заранее спасибо .. (: