Javascript 如何更新钩子内的状态并从另一个钩子读取

Javascript 如何更新钩子内的状态并从另一个钩子读取,javascript,reactjs,react-hooks,Javascript,Reactjs,React Hooks,我有这个react无状态组件,第一个useffect应该在组件加载后运行,第二个在我滚动页面时运行,以实现无限滚动 我试图做的是更新useEffect内的状态,然后在第二个内使用更新的值: const MyComponent = () => { const [state, setState] = useState({ page: 1 }); useEffect(() => { setState({ ...state, pa

我有这个react无状态组件,第一个useffect应该在组件加载后运行,第二个在我滚动页面时运行,以实现无限滚动

我试图做的是更新useEffect内的状态,然后在第二个内使用更新的值:

const MyComponent = () => {
  const [state, setState] = useState({
    page: 1
  });

  useEffect(() => {
    setState({
        ...state,
        page: state.page + 1
    });
   }, []);

  useEffect(() => {

    if (window.innerHeight + document.documentElement.scrollTop !== document.documentElement.offsetHeight) {
            return;
        }
    console.log(state.page);

    window.addEventListener('scroll', handleScroll);
    return () => window.removeEventListener('scroll', handleScroll);
  }, []);

}
不幸的是,console.log显示该页面仍然是一个页面,即使在chrome中使用react控制台,我可以看到该值已更改


我知道useEffect是无状态的,因此console.log在更新之前正在读取该值,无论如何,我如何修复它以读取更新的值?

在第二个示例中使用:
useEffect(()=>{…},[state])

在第二个用法中:`useffect(()=>{…},[state]);此外,您可以更新您的问题已解决的问题,以便其他人不尝试解决。