我正在观看this video,当发生错误时,他会在页面上看到实际错误,并且在部署网站时只会出现白屏。
我见过几次。但是无论我在本地主机上还是在生产中,我都只会看到白屏。
我看到他在Mac上使用chrome,而在PC上使用。不确定是否有区别。
答案 0 :(得分:0)
虽然我不能确切地说,但我怀疑您没有使用create-react-app来设置项目。
仅当您使用CRA设置项目时,您才会看到该错误消息,因为这是特定于该项目的错误处理程序。如果您不使用create-react-app,React应该将错误记录到控制台。
答案 1 :(得分:0)
ReactJS足够聪明,可以在应用程序处于生产模式时向用户隐藏错误。
如果应用崩溃,您只会看到一个空白页面,但是如果您查看该页面,则会在控制台中看到有关该错误的小细节。
如果您以开发模式运行该应用程序,则将看到有关错误的完整详细信息。
在这种情况下,出现了componentDidCatch
方法来处理应用程序崩溃错误,而不是在空白页上向用户显示“ 出现问题 ”消息,或者您可以将XHR请求和错误信息发送到服务器。
签出this example of declaring and using an error boundary
https://reactjs.org/blog/2017/07/26/error-handling-in-react-16.html