reactjs 在Next js中使用useState钩子后浏览器选项卡冻结

8aqjt8rx  于 2023-06-22  发布在  React
关注(0)|答案(2)|浏览(97)

这是一个非常简单的客户端组件:

'use client';
import {useEffect, useState} from "react";

export default function MultiplePosts({posts, session, slug}) {
    const [count, setCount] = useState(0);

    useEffect(() => {
        console.log('Count has been updated:', count);
    }, []);

    function incrementCount() {
        setCount(count + 1);
    }

    return (
        <div className={"post-infinite-container"}>
            <p>Count: {count}</p>
            <button onClick={() => incrementCount()}>Increment</button>
        </div>
    )
}

从一开始我就想用它作为无限滚动,但面对的问题。当我以某种方式与useState交互时-它冻结了标签,我甚至无法关闭它。即使在这个简单的例子中,我也要面对它。
我读过很多关于我的问题的其他问题,但找不到解决办法。我已经快疯了。
我做了什么?
1.已检查是否有任何组件导致多次重新渲染-否。两个是我最大的重渲染。
1.关闭问题一周围的所有组件。没有帮助。
拜托,也许有人比我先面对这个问题。我只是不明白为什么会这样。这太简单了,不会引起这些问题。

kulphzqa

kulphzqa1#

特伦顿·麦金尼的回答正是我的代码中出错的地方。不要在客户端组件中使用异步函数

e4eetjau

e4eetjau2#

解决方案:一个客户端组件被标记为async。它会导致无限的重新渲染。**不要在客户端组件中使用async函数。**不要

相关问题