React redux - ошибка «Максимальная глубина обновления превышена» - PullRequest
0 голосов
/ 20 сентября 2019

Когда я хочу войти в свое приложение, после ввода правильных данных и нажатия кнопки «Войти», я получаю эту ошибку:

enter image description here

URL-адрес изменяется на «приборную панель», как подсказывает код, но я не вижу содержимого страницы, кроме вышеуказанной ошибки.

В консоли я вижу, что код из компонента Header (который являетсячасть Dashboard) вызывается много раз (что, я полагаю, вызывает проблему):

enter image description here

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

Вот код:

Компонент заголовка:

const Header = withRouter(({ history }) => {

const values = useSelector((state) => ({...state.sharedReducer}));
console.log('***  VALUES: ', values);
const dispatch = useDispatch();

const handleMenuClick = () => dispatch(menuClickAction());
const handleLinkClick = () => dispatch(closeMenuAction());
................

Компонент входа:

  //  Runs only once on init
  useEffect(() => {
    if(isAuth) {
      props.history.push("dashboard"); //  Redirect to 'dashboard'
    }
  });

  useEffect(() => {
    //  Clear the form
    dispatch(clearFormDataAction());
  }, [dispatch]);

  useEffect(() => {
    if(!values.emailEmptyError && !values.passwordEmptyError && values.email.length && values.password.length && !values.isFormValid) {
      dispatch(enableSubmitButtonAction());
        }
  }, [values, dispatch]);

  const handleSubmitForm = (e) => {
    e.preventDefault();
    handleLoading(true);

    const loginDetails = {
      email: values.email,
      password: values.password
    };

    AuthService.login(loginDetails)
      .then(response => {
        if(response) {
          LocalStorageService.setItem('currentUser', response.data.user);
          props.history.push("dashboard"); //  Redirect to 'dashboard'
        }
      })
      .catch((error) => {
        handleSubmitError(i18n.t("ERRORS.LOGIN_WRONG_DETAILS"));
        console.log('error: ', error);
      });
   }

Может кто-нибудь посоветовать, пожалуйста, что не так?Спасибо!

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