GVKun编程网logo

创建React应用程序不显示带有ErrorBoundary的错误消息(react创建项目报错)

25

如果您对创建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创建项目报错)

创建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

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 的提供者。

以下是解决这个错误的一些可能的方法:

  1. 添加提供者:在使用依赖项的组件、指令、服务等中添加一个提供者,该提供者能够提供 XX 的实例。例如,如果依赖项是一个服务,则可以在该服务的注入器元数据中添加提供者:
import { Injectable } from ''@angular/core'';
import { XX } from ''./xx'';

@Injectable({
  providedIn: ''root'',
  // 添加提供者
  providers: [XX]
})
export class MyService {
  constructor(private xx: XX) { }
}
  1. 导入提供者:如果提供者已经存在,但未被导入到当前文件中,那么可以通过导入提供者来解决该问题:
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) { }
}
  1. 确认提供者:确保 XX 类型的提供者已经被正确地添加到应用程序的模块、组件或指令中,并且其名称拼写和路径正确。
  2. 确认依赖:确保代码中使用 XX 的组件、指令、服务等已经正确地注入到了需要 XX 的地方。

这些方法可以帮助你解决 ERROR Error NullInjectorError No provider for XX 错误。如果仍然无法解决问题,可以考虑查看应用程序的其他代码,或者尝试在搜索引擎上搜索相关的解决方案。

jquery – Facebook – 错误消息:redirect_uri不归应用程序所有

jquery – Facebook – 错误消息:redirect_uri不归应用程序所有

我正在尝试使用FB.ui()向朋友发送apprequests.我的应用程序是一个标签iframe应用程序(不是一个CANVAS APP)所以在我的开发人员部分,我只有“基本信息”和“页面标签”部分完成(不是Facebook区域的应用程序),因为我不希望用户能够直接进入应用程序.

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应用程序位置或安装应用程序的页面选项卡?

任何帮助都可以!

解决方法

填充选项卡设置中的应用程序域:和站点URL:字段.这将有助于解决您的问题.您必须确保重定向URL与您指定的域匹配.

ModelState.AddModelError 不显示我的错误消息

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 处理自定义错误

React ErrorBoundary 处理自定义错误

ErrorBoundary 处理自定义错误

背景

错误边界是一种 React 组件,这种组件可以捕获发生在其子组件树任何位置的 JavaScript 错误,并打印这些错误,同时展示降级 UI。

问题

react 只能在以下 3 种实现下才会捕获错误

  • 渲染期间
  • 生命周期方法
  • 整个组件树的构造函数

无法自动捕获下面 4 种实现

  • 事件处理
  • 异步代码(例如 setTimeoutPromise回调函数)
  • 服务端渲染
  • 它自身抛出来的错误(并非它的子组件)

通常希望业务代码能够复用 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

  1. https://github.com/bvaughn/re...

今天关于创建React应用程序不显示带有ErrorBoundary的错误消息react创建项目报错的讲解已经结束,谢谢您的阅读,如果想了解更多关于Angular 错误消息:ERROR Error NullInjectorError No provider for XX、jquery – Facebook – 错误消息:redirect_uri不归应用程序所有、ModelState.AddModelError 不显示我的错误消息、React ErrorBoundary 处理自定义错误的相关知识,请在本站搜索。

本文标签: