Невозможно сгенерировать ошибку в функции установки хука React - PullRequest
1 голос
/ 17 января 2020

У меня есть следующий код в пользовательском обработчике реакции, который может вызвать ошибку, основанную на предыдущих данных состояния.

const [data, setData] = useState({});

const handleSomething = () => {
  setData((oldData) => {
    if (/* some condition based on oldData */) {
      throw new Error('Bad');
    }
    // Other code
    return newData;
  });
}

Но когда я делаю что-то вроде следующего:

try {
  handleSomething()
} catch (err) {
  console.log('There was an error');
}

Мой блок catch не введен, и ошибка все еще возникает. На мой взгляд, кажется, что React поднимает ошибку, а затем выдает ошибку, вместо того, чтобы позволить мне это сделать. Как я мог избежать чего-то подобного?

Ответы [ 2 ]

0 голосов
/ 01 февраля 2020

если вы находитесь в React> = версия 16: посмотрите методы жизненного цикла: componentDidCatch () & stati c getDerivedStateFromError () ...

0 голосов
/ 17 января 2020

Как сказал @ Jayce444, setData будет асинхронным, поэтому его невозможно поймать. Нет основы c способ обойти.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...