首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在React中使用'useErrorHandler()‘?

如何在React中使用'useErrorHandler()‘?
EN

Stack Overflow用户
提问于 2020-10-07 04:31:51
回答 1查看 1.4K关注 0票数 2

我正在查看来自herereact-error-boundary库,但我不知道如何使用useErrorHandler(error?: Error)属性。

假设我用错误边界包装我的应用程序,就像这样

代码语言:javascript
复制
import {ErrorBoundary} from 'react-error-boundary';

<ErrorBoundary onError={myErrorHandler}>
  <App />
</ErrorBoundary>

如何使用'useErrorHandler‘捕获异步代码回调中的错误,例如,传播到ErrorBoundary,这样我就可以使用myErrorHandler

'useErrorHandler‘是在哪里定义或导入的?

我正在尝试使用它作为一个捕获所有错误的设置-有点像在java中将抛出异常添加到main中。

异步代码示例:

代码语言:javascript
复制
  ...
  return new Promise(function (resolve, reject) {
      axios({
        ...
      })
        .then((res) => {
          resolve(res);
          // <-- ?
        })
        .catch((err) => {
          reject(err);
        });
    });
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-10-07 05:02:56

文档并没有明确说明如何导入useErrorHandler函数,但它是API的一部分,因此您可以使用与导入ErrorBoundary相同的方式进行导入。

import { useErrorHandler } from 'react-error-boundary';

例如:(基于the documentation)

代码语言:javascript
复制
    import { useErrorHandler } from 'react-error-boundary';
    
    function Greeting() {
      const [greeting, setGreeting] = React.useState(null)
      const handleError = useErrorHandler()
     
      function handleSubmit(event) {
        event.preventDefault()
        const name = event.target.elements.name.value
        fetchGreeting(name).then(
          newGreeting => setGreeting(newGreeting),
          handleError,
        )
      }
     
      return greeting ? (
        <div>{greeting}</div>
      ) : (
        <form onSubmit={handleSubmit}>
          <label>Name</label>
          <input id="name" />
          <button type="submit"}>
            get a greeting
          </button>
        </form>
      )
    }
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64233408

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档