微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何使用 React Error boundry get error details 获取尽可能多的关于错误的详细信息?

如何解决如何使用 React Error boundry get error details 获取尽可能多的关于错误的详细信息?

我想在错误发生时捕捉更多细节。

错误发生时,我使用 node api 服务器来捕获错误并保存在日志文件中。

我模拟了一个网络错误并试图获得尽可能多的细节。

当我 console.log 前端的错误时,我得到了这个:

<c:forEach var="rolePermissions" items="${rolePermissionsMap}">
    <c:set var="role" value="${rolePermissions.key}" />
    <c:set var="rolePermissionsList" value="${rolePermissions.value}" />
    <tr>
        <td>${role.name}</td>
        <td>
            <select class="form-select" name="role-permission">
                <c:forEach var="rolePermission" items="${rolePermissionsList}">
                    <option value="${rolePermission.pageName}">${rolePermission.pageName}</option>
                </c:forEach>
            </select>
        </td>
        <td>
            <i class="fas fa—circle green"> ${role.status eq 1 ? 'Active' : 'Deactive'}</i>
        </td>
        <td>
            <a href="${pageContext.request.contextpath}/admin/edit-role?id=${role.id}">
                <i class="fas fa—cog fa—lg me—2 edit"></i>
            </a>
            <a href="#"><i class="fas fa-times-circle fa—cog fa—lg delete"></i></a>
        </td>
    </tr>
</c:forEach>

但我无法使用我的 api 发送此信息。 我在服务器端得到的只是一个空对象。

那么我如何才能捕获并发送尽可能多的关于错误的详细信息并将其写入日志文件

这是我的 ErrorBoundry 组件:

 withFormHandler.js:28 Uncaught Error: Error: Network Error
    at Object.componentDidUpdate (withFormHandler.js:28)
    ...

这是服务器端的句柄:

class ErrorBoundary extends React.Component {
  state = {
    hasError: false,error: { message: "",stack: "" },info: { componentStack: "" },};

  static getDerivedStateFromError = (error) => {
    return { hasError: true };
   };

 componentDidCatch = (error,info) => {
    this.setState({ error,info });
    axios
    .get(`http://localhost:5001/api/logs/error`,{
      params: {
      error: error.message,details: info,// details:error  ---> this is also not give me information i need
      },})
   .catch(() => {});
 };

 render() {
   const { hasError,error,info } = this.state; 
   const { children } = this.props;
   return hasError ? <ErrorComponent message={error.message} /> : children;
  }
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。