Как отключить панель ошибок react dev, которая показывает ‘Необработанное отклонение (ошибка): XXXXX’?

#reactjs #promise #create-react-app #unhandled-promise-rejection

#reactjs #обещаю #create-react-app #необработанное-обещание-отклонение

Вопрос:

Необработанное отклонение (ошибка)

 Unhandled Rejection (Error): User does not exist
(anonymous function)
src/service/index.ts:102
   99 | if (customConfig.rawData) return res.data
  100 | if (res.data.code != 0) {
  101 |   const message = res.data.msg || `Api Error:code - ${res.data.code}`
> 102 |   const error = new Error(message)
      | ^  103 |   ;(error as any).response = res
  104 |   ;(error as any).config = res.config
  105 |   ;(error as any).response = res
View compiled
This screen is visible only in development. It will not appear if the app crashes in production.
Open your browser’s developer console to further inspect this error.  Click the 'X' or hit ESC to dismiss this message.
  

Я выдаю ошибку при получении ошибки api и перехватываю это по событию «необработанное отклонение» в окне. Но в приложении react есть панель подсказок об ошибках разработчика, как показано. Как я могу это отключить, мне это не нужно.

Комментарии:

1. react предупреждает вас, что ошибка promise в вашем коде не обрабатывается. Он говорит, что User не существует, поэтому то, к чему вы пытаетесь получить доступ, в настоящее время не существует. Вы должны показать fetch код для большей ясности. Кроме того, вы не должны игнорировать подобные ошибки, если хотите, чтобы сайт работал должным образом

2. Ожидается ошибка, и я обработаю ее при событии окна ‘unhandledrejection’. Но даже несмотря на то, что я прослушал событие и предотвратил событие в окне. Панель ошибок все еще отображается.

3. Я также хотел бы иметь решение для этого, поскольку я использую sdk, который включает в себя небольшую часть кода, которая запускает исключение, которое не обрабатывается, и при его перехвате все еще отображается панель необработанного отклонения :/

Ответ №1:

Вы можете использовать react-app-rewired для настройки CRA конфигурации https://github.com/timarney/react-app-rewired

Вот ваш config-overrides.js файл

 module.exports = (config) => {
  const refreshPlugin = config.plugins.find((plugin) => plugin?.constructor?.name === 'ReactRefreshPlugin')

  if (refreshPlugin) {
    refreshPlugin.options.overlay = false
  }

  return config
}