在 React js 中获取时如何隐藏控制台状态错误消息?

IT技术 reactjs fetch
2021-05-15 21:16:43

在我的 React 应用程序中,我使用fetch()从我的 API 获取数据,如果我的数据库中存在域的网站,则_callAPI()函数获取domain参数并调用 API。如果存在,则返回网站的对象,否则返回 500。因此,在使用 fetch() 之前,我无法确定该网站是否存在。问题是每次 fetch() 都找不到任何东西时,它会抛出以下内容:

container.jsx:25 GET http://localhost:3000/boutiques/detail/?q=testdomain.com 500(内部服务器错误)

当它没有找到很多网站时,控制台日志中会包含该错误消息。有没有办法在获取时忽略那种消息?

fetch()

_callApi = () => {
    const { domain } = this.props;

    return fetch(`/boutiques/detail/?q=${domain}`)
      .then(response => {
        if (response.status === 500) {
          return 500;
        }
        return response.json();
      })
      .then(json => json)
      .catch(err => console.log(err));
  };
1个回答

如果要使浏览器错误静音:

不幸的是,这无法完成,因为控制台中的此类消息是由 chrome 本身打印的。压制此类信息已争论多年,但共识似乎是这种信息是可取的

学分

如果您想静音控制台中的 Unhandled 错误

您始终可以在前端消除错误,如下所示:

.catch(err => { const mute = err })

但是最好以某种方式通知用户有关错误的信息,而不是执行此类解决方法。

此外,您的服务器最好在响应中返回错误消息,并且在前端您将继续执行它。

查看您的情况,服务器以状态代码 400 进行响应可能会更好。以下是 HTTP 错误代码及其用途:

  • 4xx(客户端错误):请求包含错误的语法或无法完成
  • 5xx(服务器错误):服务器未能满足明显有效的请求