Этот вопрос закрыт для ответов, так как повторяет вопрос Почему значения хуков не переприсваиваются?
jean_gaben
@jean_gaben

Почему console.log выводит неактуальные данные?

const Auth = () => {
  let [isLogin, setIsLogin] = useState(true)

  let enter = () => {
    setIsLogin(true);
    console.log(isLogin);
  }

  let registration = () => {
    setIsLogin(false);
    console.log(isLogin);
  }

  return (
    <>
      <Navbar />
      <div className="wrapper">
        <div className="container">
          <div className={cl.auth}>
            <div className={cl.topline}>
              <span onClick={enter} className={isLogin ? cl.active : ''}>Войти</span>
              |
              <span onClick={registration} className={isLogin ? '' : cl.active}>Зарегистрироваться</span>
            </div>
            {isLogin ?
              <Login />
              :
              <Registration />
            }
          </div>
        </div>
      </div>
    </>
  );
}


После рендеринга страницы нажимаю на кнопку "зарегистрироваться" и в консоль выводится "true". При этом ререндер происходит нормально, т.е. проблема только в выводе данных. Если нажать на эту же кнопку ещё раз, в консоле появится "false". После этого если нажать на "вход", то в консоли выведется "false", если ещё раз нажать - "true". Подскажите, пожалуйста, в чём дело и как исправить?
  • Вопрос задан
  • 122 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Вопрос закрыт для ответов и комментариев

Потому что уже есть похожий вопрос.
Похожие вопросы