выдать ошибку с statusCode внутри Next Js, чтобы проверить настроенную страницу ошибки - PullRequest
0 голосов
/ 06 апреля 2020

Итак, я создал пользовательскую страницу ошибок, чтобы разрешить интернационализацию. Это работает нормально. Единственный способ проверить это - ввести gibberi sh в качестве маршрута. Например: localhost:<port>/gibberish

, поэтому он перенаправит меня на страницу пользовательских ошибок. Я пытался создать страницу с именем errortest, и внутри этой страницы я хочу выдать ошибку с указанным statusCode, поэтому Next Js перехватывает ее и перенаправляет на пользовательскую страницу ошибки.

Thing Я понятия не имею, как это сделать.

Что-то вроде этого:

const ErrorTest = () => {
  //Throw Error
};

export default ErrorTest;

1 Ответ

0 голосов
/ 07 апреля 2020

Вам не нужно создавать пользовательскую страницу ошибки или перенаправлять на страницу ошибки, просто верните <Error /> из next/error на своей странице, если она получает ошибку

import React from 'react';
import { NextPage } from 'next';
import Error from 'next/error';

interface PageProps {
    title: string;
    responseStatus?: number;
}

const Test: NextPage<PageProps> = ({ responseStatus }) => {
    if (responseStatus) {
        return <div>Success</div>;
    } else {
        return <Error statusCode={responseStatus} />;
    }
};

Test.getInitialProps = async () => {
    let responseStatus = null;
    fetch('YOUR_API')
        .then(response => response.json())
        .then()
        .catch(error => {
            responseStatus = error.status;
        });
    if (responseStatus) {
        return {
            title: 'Test',
            responseStatus: responseStatus,
        };
    }

    return {
        title: 'Test',
    };
};
export default Test;
...