如果您对创建React应用程序不显示带有ErrorBoundary的错误消息感兴趣,那么本文将是一篇不错的选择,我们将为您详在本文中,您将会了解到关于创建React应用程序不显示带有ErrorBoun
如果您对创建React应用程序不显示带有ErrorBoundary的错误消息感兴趣,那么本文将是一篇不错的选择,我们将为您详在本文中,您将会了解到关于创建React应用程序不显示带有ErrorBoundary的错误消息的详细内容,我们还将为您解答react创建项目报错的相关问题,并且为您提供关于Angular 错误消息:ERROR Error NullInjectorError No provider for XX、jquery – Facebook – 错误消息:redirect_uri不归应用程序所有、ModelState.AddModelError 不显示我的错误消息、React ErrorBoundary 处理自定义错误的有价值信息。
本文目录一览:- 创建React应用程序不显示带有ErrorBoundary的错误消息(react创建项目报错)
- Angular 错误消息:ERROR Error NullInjectorError No provider for XX
- jquery – Facebook – 错误消息:redirect_uri不归应用程序所有
- ModelState.AddModelError 不显示我的错误消息
- React ErrorBoundary 处理自定义错误
创建React应用程序不显示带有ErrorBoundary的错误消息(react创建项目报错)
我正在学习如何使用componentDidCatch()
。它看起来直截了当。它可以工作,但是仍然可以在视图上显示完整的错误堆栈。
在单独的文件中:
import React, { Component } from ''react''class ErrorBoundary extends Component { constructor(props) { super(props); this.state = { hasError: false } } componentDidCatch(error, info) { console.log("Catching an error") // this is never logged this.setState(state => ({...state, hasError: true })) } render() { if (this.state.hasError) { return <div>Sorry, an error occurred</div> } return this.props.children }}export default ErrorBoundary ...import React, { Component } from ''react''class Foo extends Component { render() { return this.props.a.b; // So this should cause the error }}export default Foo ...import React, { Component } from ''react''// Imported Foo and ErrorBoundaryclass Home extends Component { render() { return <ErrorBoundary><Foo /></ErrorBoundary> }}export default Home
在页面刷新时,Sorry, an error occurred
从字面上看,我需要等待一秒钟,然后向用户显示完整的错误堆栈。这是Create React
App的问题吗?我正在使用React 16。
答案1
小编典典根据github上的 这个 问题,
在页面刷新上,我看到很抱歉,从字面上看,发生了一秒钟的错误,然后向用户显示了完整的错误堆栈。
@DanAbramov明确指出
这是故意的。意外错误仍然是错误。(我们不建议对预期的错误或控制流使用错误边界。)
错误边界主要对生产有用,但是在开发中,我们希望使错误尽可能地可见。
另外可见的错误只是一个覆盖,您的ErrorBoundary
消息被隐藏在错误覆盖的后面
要检查错误是否确实存在,您可以检查元素并从DOM中删除覆盖,您将能够看到错误消息
检查此CodeSandbox:
Angular 错误消息:ERROR Error NullInjectorError No provider for XX
错误消息 ERROR Error: NullInjectorError: No provider for CustomI18nConfigInitializer! 应该如何处理?
我已经在 AppModule 里编写了如下代码啊:
{
provide: CONFIG_INITIALIZER,
useExisting: CustomI18nConfigInitializer,
multi: true
}
解决思路
在 Angular 应用中,出现 ERROR Error NullInjectorError No provider for XX 错误通常表示未在注入器中提供所需的依赖项。
具体而言,这个错误消息意味着某个组件、指令、服务等需要依赖于 XX 类型的对象,但注入器无法找到 XX 的提供者。
以下是解决这个错误的一些可能的方法:
- 添加提供者:在使用依赖项的组件、指令、服务等中添加一个提供者,该提供者能够提供 XX 的实例。例如,如果依赖项是一个服务,则可以在该服务的注入器元数据中添加提供者:
import { Injectable } from ''@angular/core'';
import { XX } from ''./xx'';
@Injectable({
providedIn: ''root'',
// 添加提供者
providers: [XX]
})
export class MyService {
constructor(private xx: XX) { }
}
- 导入提供者:如果提供者已经存在,但未被导入到当前文件中,那么可以通过导入提供者来解决该问题:
import { Component } from ''@angular/core'';
import { XX } from ''./xx'';
@Component({
selector: ''my-component'',
template: `<h1>My Component</h1>`
// 导入提供者
providers: [XX]
})
export class MyComponent {
constructor(private xx: XX) { }
}
- 确认提供者:确保 XX 类型的提供者已经被正确地添加到应用程序的模块、组件或指令中,并且其名称拼写和路径正确。
- 确认依赖:确保代码中使用 XX 的组件、指令、服务等已经正确地注入到了需要 XX 的地方。
这些方法可以帮助你解决 ERROR Error NullInjectorError No provider for XX 错误。如果仍然无法解决问题,可以考虑查看应用程序的其他代码,或者尝试在搜索引擎上搜索相关的解决方案。
jquery – Facebook – 错误消息:redirect_uri不归应用程序所有
FB.UI()昨天工作,当我为我的应用程序完成facebook区域的应用程序,但删除它时,我收到以下错误:
API错误代码:191
API错误说明:指定的URL不归应用程序所有
错误消息:redirect_uri不归应用程序所有.
我用来发送消息的代码是:
FB.ui({method: 'apprequests',message: 'Play RCS Let\'s make it happen game!' },function(data) { $("#sendToFriends").fadeOut(); $("#didyoukNow").fadeIn(); console.log(data); });
我不介意完成“Facebook的应用程序”的区域,但这是必需的,然后将上面的消息通知url应用程序位置或安装应用程序的页面选项卡?
任何帮助都可以!
解决方法
ModelState.AddModelError 不显示我的错误消息
如何解决ModelState.AddModelError 不显示我的错误消息?
我有一个 asp.net 核心 MVC 项目。 我有一个操作来检查用户提供的电子邮件是否存在? 但它没有显示我的 ModelError 消息?? 有人可以帮忙吗?
这是我的操作:
[Route("/VerifyEmail")]
public IActionResult VerifyEmail()
{
return View();
}
[Route("/VerifyEmail")]
[HttpPost]
public IActionResult VerifyEmail(VerifyEmailviewmodel verifyEmail)
{
if (!ModelState.IsValid)
{
return View(verifyEmail);
}
if (!_userService.IsExistemail(verifyEmail.Email))
{
ModelState.AddModelError("Email"," ایمیل وارد شده معتبر نیست");
return View(verifyEmail);
}
var currentUser = _userService.GetUserByEmail(verifyEmail.Email);
return View("/Views/Account/SuccessEmail.cshtml",currentUser);
}
这是我的剃刀视图:
@model GameShop.Data.Domain.viewmodels.VerifyEmailviewmodel
<div>
<div>
<form action="/VerifyEmail" method="POST">
<div>
<label asp-for="Email"></label>
<input asp-for="Email"/>
<span asp-validation-for="Email"></span>
</div>
<div>
<input type="submit" value="ارسال"/>
</div>
</form>
</div>
</div>
@section Scripts{
@{await Html.RenderPartialAsync("_ValidationScriptsPartial.cshtml");}
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)
React ErrorBoundary 处理自定义错误
ErrorBoundary 处理自定义错误
背景
错误边界是一种 React 组件,这种组件可以捕获发生在其子组件树任何位置的 JavaScript 错误,并打印这些错误,同时展示降级 UI。
问题
react
只能在以下 3 种实现下才会捕获错误
- 渲染期间
- 生命周期方法
- 整个组件树的构造函数
无法自动捕获下面 4 种实现
- 事件处理
- 异步代码(例如
setTimeout
、Promise
回调函数) - 服务端渲染
- 它自身抛出来的错误(并非它的子组件)
通常希望业务代码能够复用 ErrorBoundary
的错误处理逻辑。
实现
如果要 ErrorBoundary
能处理业务代码的自定义错误,只要在渲染期间抛出错误即可。
Class Component
try {
const res = await fetchMayError();
} catch (err) {
this.setState(() => {
throw err;
});
}
Hooks
function useErrorHandler() {
const [error, setError] = React.useState(null);
if (error != null) throw error;
return setError;
}
function Foo() {
const handleError = useErrorHandler();
fetchMayError().catch(handleError);
return <div></div>;
}
Inspired
- https://github.com/bvaughn/re...
今天关于创建React应用程序不显示带有ErrorBoundary的错误消息和react创建项目报错的讲解已经结束,谢谢您的阅读,如果想了解更多关于Angular 错误消息:ERROR Error NullInjectorError No provider for XX、jquery – Facebook – 错误消息:redirect_uri不归应用程序所有、ModelState.AddModelError 不显示我的错误消息、React ErrorBoundary 处理自定义错误的相关知识,请在本站搜索。
本文标签: