React Redux单页面应用:处理带有完整页面渲染的API 404

时间:2017-03-24 18:36:00

标签: reactjs error-handling react-redux

在使用react-router实现导航的React单页面应用程序中,当在页面中呈现组件时遇到请求的API错误时,呈现整页错误的最佳做法是什么?

更具体地说,我理解react-router有一个很好的方法来实现一个404错误处理程序,用于简单地没有映射的URL路由,但是当一个路径与一个映射路由匹配URL的动态部分时(比如一个data-id导致一个组件的呈现,该组件发出一个404错误响应的请求,用错误视图替换整个反应渲染视图的最佳实践是什么?

示例场景:

  • 路线=" /个人资料/人/:PersonId",
  • 后端不存在人员ID 1234。
  • 用户访问" /个人资料/ person / 1234"
  • 配置文件/ person /:PersonId路由的组件呈现,并请求获取人员ID 1234的配置文件数据,该数据返回404,这实际上意味着给定的URL是404,但不做出反应-router。

1 个答案:

答案 0 :(得分:1)

这只是一个建议,因为我不相信你提出的定义最佳做法。

ApiService.fetch(url).then(
  onSuccess(result) => { /* dispatch page fetch success */ },
  onError(result) => { /* dispatch page fetch error */ }
);

然后构建您的应用程序:

<App>
  { error ? <ErrorHandler /> : <PageHandler /> }
</App>

此结构会在遇到服务器错误的有效路由上快捷页面呈现,并改为呈现错误内容。