reactjs - 在 NextJs 中使用 statusCode 抛出错误以测试自定义的错误页面
问题描述
所以我建立了一个自定义错误页面,以允许国际化。这工作正常。不过,我测试它的唯一方法是输入胡言乱语作为路线。例如:localhost:<port>/gibberish
所以它会将我重定向到自定义错误页面。我一直在尝试创建一个名为errortest
and 在该页面内的页面,我想用给定的 statusCode 抛出一个错误,因此 NextJs 捕获它并重定向到自定义错误页面。
问题是,我不知道该怎么做。
沿着这个:
const ErrorTest = () => {
//Throw Error
};
export default ErrorTest;
解决方案
我也遇到了这个问题,我认为最简单的方法是将_error.js
页面导入另一个测试页面并使用您选择的状态代码呈现它。您可以在此处的 Next.js 文档中找到它。您将找到的代码示例如下所示:
import Error from 'next/error'
export async function getServerSideProps() {
const res = await fetch('https://api.github.com/repos/vercel/next.js')
const errorCode = res.ok ? false : res.statusCode
const json = await res.json()
return {
props: { errorCode, stars: json.stargazers_count },
}
}
// Note the page returns your custom error page
export default function Page({ errorCode, stars }) {
if (errorCode) {
return <Error statusCode={errorCode} />
}
return <div>Next stars: {stars}</div>
}
您可以将自定义错误页面导入另一个页面并在那里进行修改,而无需运行yarn build
和yarn start
. 如果您想更新样式或修复开发过程中可能出现的任何问题(例如本地化),这将特别有用。
推荐阅读
- java - 从 Listener 修改 UI
- autohotkey - 我的 AutoHotKey 脚本运行时无法键入空格?
- python - ValueError:尝试在具有祖父目录的顶级包之外进行相对导入(再次出现相对导入问题)
- android - Kotlin:由具有具体类型参数的函数覆盖
- docker - 如何简单地扩展 docker-compose 服务并将索引和计数传递给每个服务?
- python - 为什么 %pylab 没有启动 pylab 模式?
- here-api - 我不断收到“未找到请求的资源”
- r - ggplot随机截距垂直而不是水平
- python - self.variable.function() 在python中的含义或通过类self变量访问方法
- java - HashMap 中的 Java 存储特定类类型