Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs Next.js&;Axios-将状态代码500从Axios请求转发到Next.js_Reactjs_Axios_Next.js - Fatal编程技术网

Reactjs Next.js&;Axios-将状态代码500从Axios请求转发到Next.js

Reactjs Next.js&;Axios-将状态代码500从Axios请求转发到Next.js,reactjs,axios,next.js,Reactjs,Axios,Next.js,如何将Axios请求中的状态码转发到next.js 错误对象是否需要通过axios promise使用者(.catch(error=>{…}))传递到next.js?如果是,如何进行?如果没有.catch消费者,我会得到服务器端错误未处理的PromisejectionWarning:error,Next.js不会自动捕获错误以抛出样式化的错误页面 通过将自定义组件添加到pages/_error.tsx,我还覆盖了next/error组件。 ()它以前在代码404下工作 import React,

如何将Axios请求中的状态码转发到next.js

错误对象是否需要通过axios promise使用者(
.catch(error=>{…})
)传递到next.js?如果是,如何进行?如果没有
.catch
消费者,我会得到服务器端错误
未处理的PromisejectionWarning:error
,Next.js不会自动捕获错误以抛出样式化的错误页面

通过将自定义组件添加到pages/_error.tsx,我还覆盖了next/error组件。 ()它以前在代码404下工作

import React, { ReactElement } from 'react'

import ErrorPage from '@templates/ErrorPage'
import { PageContext } from '@pages/_app'

interface Props {
  statusCode: number
}

function Error({ statusCode }: Props): ReactElement {
  return <ErrorPage />
}

Error.getInitialProps = ({ res, err }: PageContext) => {
  const errorStatusCode = err ? err.statusCode : 404
  const statusCode = res ? res.statusCode : errorStatusCode

  return { statusCode }
}

export default Error
不知何故,Next.js的React错误边界没有捕获statuscode 500错误

将文档中的条目添加到500页:

500页 默认情况下,Next.js提供一个500错误页面,该页面与默认404页面的样式相匹配。此页面不是静态优化的,因为它允许报告服务器端错误。这就是为什么404和500(其他错误)是分开的

是的,我还尝试了一个内置的(产品)

有什么想法吗?提前谢谢你

import axios from 'axios'

export function request(requestObject) {
  const { method, url, data } = requestObject

  ...

  const requestData = { ... }

  ...

  return axios({
    url,
    method,
    data: method !== 'get' ? requestData : null,
    params: method === 'get' ? requestData : null,
  })
    .then(res => {

      ...

      return response
    })
    .catch(
      (error: Error) =>
      {
        throw error
      }
    )
}