Akb*_*bal 8 error-handling server-error reactjs next.js
使用 NextJS,我看到 2 种错误:
服务器错误
throw new Error(...)内部 getInitialProps生成它...未处理的运行时错误
throw new Error(...)组件内部生成它_app.js)问题:在错误边界内捕获未处理的运行时错误(就像它们在 ReactJS 中所做的那样)...如何最好地处理“服务器错误”...最佳实践是什么?
处理错误的最佳实践之一是使用 Early Return,即statusCode在 getInitialProps 中返回一个 prop,并statusCode在渲染页面后使用它来渲染错误页面,以防止处理页面内可能出现的错误。
import Error from "next/error"
function Page({ stars, statusCode}) {
if(statusCode !== 200) {
return <Error statusCode={statusCode} />
}
return <div>Next stars: {stars}</div>
}
Page.getInitialProps = async (ctx) => {
try{
const res = await fetch('https://api.github.com/repos/vercel/next.js')
const json = await res.json()
if(res.status >= 400){
return { stars: json.stargazers_count, statusCode: res.status }
}
return { stars: json.stargazers_count, statusCode: 200 }
} catch(error){
return {stars: null, statusCode: 503}
}
}
export default Page
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4416 次 |
| 最近记录: |