Задать вопрос

Как корректно обновить useState?

Добрый день, многоуважаемые!
Помогите очередной раз, пожалуйста
const handleChange = useCallback((page) => {
    setPage(page);
    if(page === Math.ceil((repos.length/pageSize)+1))  {
      setGithubPage((prevValue) => {
        return prevValue + 1
    })
      findUser();
    }
  },[page]);

Есть вот такой кусок кода, проблема в том, что не корректно стейт обновляется setGithubPage это
Функция findUser вызывается с аргументом, который меняется с помощьюsetGithubPage
Я нагуглил, что для корректного обновления стейта лучше использовать useEffect
Но если я делаю так
useEffect(() => {
    setPage(page);
    if(page === Math.ceil((repos.length/pageSize)+1))  {
      setGithubPage((prevValue) => {
        return prevValue + 1
    })
      findUser();
    }
  }, [handleChange]);

то у меня стейт меняется сразу при монтаже компонента (потому что useEffect сразу срабатывает)
Как выйти из этой ситуации
  • Вопрос задан
  • 107 просмотров
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Мидл фронтенд-разработчик
    5 месяцев
    Далее
  • Яндекс Практикум
    React-разработчик
    3 месяца
    Далее
  • Яндекс Практикум
    Фронтенд-разработчик
    10 месяцев
    Далее
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
ITK academy Нижний Новгород
от 50 000 до 90 000 ₽
ITK academy Воронеж
от 50 000 до 90 000 ₽
IT ATLAS Москва
от 200 000 до 250 000 ₽