Реагируете на переход после входа в систему?

#reactjs #redux #react-router

Вопрос:

Как говорится в названии, у меня есть приложение React, которое, помимо прочего, позволяет вам создавать свои учетные записи и получать к ним доступ. Функция отправки входа в систему очень проста, и часть, с которой у меня возникли проблемы, — это простой запрос на публикацию axios

 axios.post('/sign_in', { email: inputs.email, password: inputs.password })
.then(response => {
  localStorage.setItem('token', JSON.stringify(response.data.token));
  logUserData({ id: response.data.id, name: response.data.username, count: response.data.count }); //redux dispatch
  return history.push('/whatever');
})
.catch(err => setLastError(err.response.data));
 

}

Однако я получаю следующую ошибку

Предупреждение: Не удается выполнить обновление состояния реакции для размонтированного компонента. Это не операция, но это указывает на утечку памяти в вашем приложении. Чтобы исправить это, отмените все подписки и асинхронные задачи в функции очистки useEffect

Как мне это исправить? Для меня это не имеет смысла, я не обновляю состояние локального компонента, перенаправляющая часть кода находится последней в строке. Все результаты, с которыми я сталкиваюсь при поиске в Google этой проблемы, показывают совершенно другие проблемы, а вместе с ними и неприменимые решения.

Приложение отлично работает даже с ошибкой, но все равно я хочу, чтобы оно было чистым.

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

1. что же logUserData делать?

2. Я написал в комментарии рядом с ним, что это отправка Redux, обновляющая магазин данными пользователя

3. использует ли компонент что-либо из магазина redux?

4. Нет, отправка, которую вы видите, буквально единственная причина, по которой она вообще связана

5. Поэтому я только что понял, в чем причина, я уже создал функцию, которая охраняет мои маршруты и гарантирует, что я не смогу получить доступ к маршруту «вход», если я уже вошел, и эта функция срабатывала до того, как history.push (), поэтому я практически перенаправлял дважды, теперь, когда я удалил ее, она работает без тайм-аута