Как корректно обновить 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 сразу срабатывает)
Как выйти из этой ситуации
  • Вопрос задан
  • 106 просмотров
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы