这是一个非常简单的客户端组件:
'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.关闭问题一周围的所有组件。没有帮助。
拜托,也许有人比我先面对这个问题。我只是不明白为什么会这样。这太简单了,不会引起这些问题。
2条答案
按热度按时间kulphzqa1#
特伦顿·麦金尼的回答正是我的代码中出错的地方。不要在客户端组件中使用异步函数
e4eetjau2#
解决方案:一个客户端组件被标记为async。它会导致无限的重新渲染。**不要在客户端组件中使用async函数。**不要