在自定义错误页面中无法从getInitialProps返回道具

时间:2019-03-27 07:50:01

标签: javascript next.js

我已经在我的Pages文件夹中创建了一个自定义_error.js文件,从而为Next.js应用程序实现了一个自定义错误页面,如文档所述。问题是我从getInitialProps返回的任何道具都未定义。

因此,我尝试保留自己的自定义_error.js页面,并将示例代码放入文档中:

import React from 'react'

class Error extends React.Component {
  static getInitialProps({ res, err }) {
    const statusCode = res ? res.statusCode : err ? err.statusCode : null
    return { statusCode }
  }

  render() {
    return (
      <p>
        {this.props.statusCode
          ? `An error ${this.props.statusCode} occurred on server`
          : 'An error occurred on client'}
      </p>
    )
  }
}

export default Error

仍然没有运气:this.props.statusCode日志未定义。

问题是我不知道在哪里调试该问题。在我使用getInitialProps的任何其他页面中,它都可以正常工作。是什么原因导致这种行为的?

1 个答案:

答案 0 :(得分:0)

几个人正在报告此错误,但似乎没有得到纠正。 Zeit使用自定义HOC来处理错误:

https://spectrum.chat/next-js/general/error-handling-in-async-getinitialprops~99400c6c-0da8-4de5-aecd-2ecf122e8ad0?m=MTUzOTUyMTA1OTE0Mw==

对我来说很好。

有人对此想法进行了扩展,并发布了NPM package