React 组件的状态只有在重新渲染时才会更新。

时间:2021-08-12 03:54:37

标签: javascript reactjs typescript react-hooks state

我正在尝试每次调用 handleScroll() 时将 React 状态 setMoviesPage 的值增加 1。 我遇到的问题是,当组件重新渲染(通过导航到不同的 URL 并返回)时,状态 setMoviesPage 才会更新。

这是我的代码:

  const [moviesPage, setMoviesPage] = useState(1);

  async function handleScroll() {
    if (window.innerHeight + document.documentElement.scrollTop !== document.documentElement.offsetHeight) return;
    await setIsFetching(true);
    setMoviesPage(moviesPage + 1);
  }

  useEffect(() => {
    if (!isFetching) return;
    fetchMovies(String(moviesPage))
    .then(prevState => updateMovies([...prevState]))
    .catch(() => updateMovies([]));

    setIsFetching(false);
  }, [isFetching, setIsFetching, moviesPage, updateMovies]);

如何解决它?谢谢。

0 个答案:

没有答案