Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.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
Javascript 如何使用';使用ErrorHandler()';你有什么反应?_Javascript_Reactjs_React Hooks - Fatal编程技术网

Javascript 如何使用';使用ErrorHandler()';你有什么反应?

Javascript 如何使用';使用ErrorHandler()';你有什么反应?,javascript,reactjs,react-hooks,Javascript,Reactjs,React Hooks,我正在查看中的react error boundary库,但我不知道如何使用useErrorHandler(error?:error)prop 假设我用错误边界来包装我的应用程序-类似这样 import {ErrorBoundary} from 'react-error-boundary'; <ErrorBoundary onError={myErrorHandler}> <App /> </ErrorBoundary> 文档没有明确说明如何导入use

我正在查看中的
react error boundary
库,但我不知道如何使用
useErrorHandler(error?:error)
prop

假设我用错误边界来包装我的应用程序-类似这样

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

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

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

从“反应错误边界”导入{useErrorHandler}

例如:(基于)


从“反应错误边界”导入{useErrorHandler};
函数问候语(){
const[greeting,setGreeting]=React.useState(null)
const handleError=useErrorHandler()
函数handleSubmit(事件){
event.preventDefault()
const name=event.target.elements.name.value
(姓名)然后(
newGreeting=>setGreeting(newGreeting),
handleError,
)
}
回敬问候(
{问候语}
) : (
名称
打招呼
)
}

从您链接的文档中,似乎可以使用
useErrorHandler
来处理react框架无法处理的错误,即通常由错误边界处理的错误。文档中甚至有一个例子。我想可能令人困惑的是,
handleError
回调被作为承诺链的可拒绝处理程序传递。看起来您甚至可以直接将错误对象传递给
useErrorHandler
。你有没有想要使用错误钩子的异步代码的例子?@DrewReese添加了一个例子如果我假设某个实用函数返回承诺,那么在调用它的函数中,它可以调用承诺链的
handleError
。catch
,或者try/catch的
catch
块。实际上,我指的是react组件代码的一个示例,它调用了一些异步函数。
  ...
  return new Promise(function (resolve, reject) {
      axios({
        ...
      })
        .then((res) => {
          resolve(res);
          // <-- ?
        })
        .catch((err) => {
          reject(err);
        });
    });