Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/23.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 服务器端渲染后的React路由器客户端错误处理_Reactjs_Error Handling_React Router_Isomorphic Javascript - Fatal编程技术网

Reactjs 服务器端渲染后的React路由器客户端错误处理

Reactjs 服务器端渲染后的React路由器客户端错误处理,reactjs,error-handling,react-router,isomorphic-javascript,Reactjs,Error Handling,React Router,Isomorphic Javascript,我正在为我的React应用程序使用服务器端渲染,但无法理解在出现问题时显示错误页面的逻辑 例如: 用户请求/article/123 取回文章时出错 我想显示500错误页面 服务器端部分很简单。我告诉React路由器为我的错误组件提供服务。到目前为止还不错 但是当页面被服务时,客户端javascript被执行,并接管呈现。请查看url/article/123,并加载显示文章的组件(但由于数据不存在而失败…) 有没有办法让客户端知道我们想显示错误组件? 我唯一能想到的是:将错误添加到全局redu

我正在为我的React应用程序使用服务器端渲染,但无法理解在出现问题时显示错误页面的逻辑

例如:

  • 用户请求
    /article/123
  • 取回文章时出错
  • 我想显示
    500
    错误页面
服务器端部分很简单。我告诉React路由器为我的错误组件提供服务。到目前为止还不错

但是当页面被服务时,客户端javascript被执行,并接管呈现。请查看url
/article/123
,并加载显示文章的组件(但由于数据不存在而失败…)

有没有办法让客户端知道我们想显示错误组件?


我唯一能想到的是:将错误添加到全局redux状态。在呈现组件之前,请检查全局状态下是否存在错误,并显示错误组件。。但这样做的缺点是,您必须在所有组件中实现该检查逻辑。应该有更优雅的方法来解决这个问题

有几种不同的方法来实现客户端错误处理;我发现使用高阶组件效果最好。您将创建一个包装器组件,用于检查服务器响应中的错误。如果它找到了一个,则提供相应的错误页面。如果HOC没有检测到错误,则为用户最初请求的组件提供服务

下面是关于如何实现HOC的一个很好的解释:

谢谢,我现在不在做React项目,但稍后会研究!关于错误处理,你能帮我一下吗?谢谢:)