Я пытаюсь удовлетворить конкретное требование для нашего веб-приложения. У нас есть страница "Предмет", на которой в случае распродажи предмета должна продолжаться отображаться его позиция, но код ответа страницы должен быть установлен на 404. Я пробую что-то вроде этого:
В страницах / [id] /Item.tsx:
static async getInitialProps(ctx) {
//retrieve item
if (item.isSoldOut) {
ctx.res.statusCode = 404;
}
//all other stuff
}
Но он будет автоматически перенаправлен на домашнюю страницу с кодом состояния 302. Как добиться такого поведения?
1 ответ
В документации Next.js предлагается использовать getStaticProps
или getServerSideProps
вместо getInitialProps
(https://nextjs.org/docs/api-reference/data-fetching/getInitialProps)
Используя getServerSideProps
, вы можете сделать следующее
export const getServerSideProps: GetServerSideProps = async ({ req, res }) => {
res.statusCode = 404;
return { props: {} }
}
Используя getInitialProps
, вы можете сделать следующее:
static async getInitialProps({res}) {
// server side
if(res) res.statusCode = 404;
// client side
return { statusCode : 4040 }
}
Похожие вопросы
Новые вопросы
reactjs
React — это библиотека JavaScript для создания пользовательских интерфейсов. Он использует декларативную парадигму на основе компонентов и стремится быть эффективным и гибким.