function App() {
const [items, setItems] = useState([]);
const [isLoading, setIsLoading] = useState(true);
if (items.length == 0) loadMore()
return <div>
{isLoading
? <div>Loading...</div>
: <ol>{items.map(i => <li>{i}</li>)}</ol>
}
<button disabled={isLoading} onClick={loadMore} style={{ width: "100%" }}>
{isLoading ? "Loading..." : "Load again"}
</button>
</div>;
function loadMore() {
setIsLoading(true); // ⚠ errors!
const uri = "https://www.reddit.com/r/reactjs.json";
fetch(uri)
.then(r => r.json())
.then(r => {
const newItems = r.data.children.map(i => i.data.title);
items.push(...newItems);
setItems([...items]);
setIsLoading(false);
});
}
}
斯塔克布利茨链接。
这是由于以下条件if(items.length==0)loadMore()
。
因为在开始时长度为0,所以调用loadMore来设置状态,并再次输入调用loadMore的条件,以此类推。
使用useEffect
挂钩与一个空的依赖项数组,而不是在组件挂载时调用一次函数的条件。
useEffect(loadMore, [])
我在使用时遇到一个错误。即使加载页面是新鲜的,没有按下任何按钮,我的按钮onClick事件侦听器激活了,正如我之前在主题中提到的,我的错误: “错误:重新呈现太多。React限制呈现次数以防止无限循环。”
呈现以下组件时出现错误: 太多的重放。React限制呈现的数量以防止无限循环。?
有人能帮帮我吗?
当GetCreatorLicense()被禁用时,programe运行良好,我试图在循环之外设置数据,但仍然得到‘错误:太多的重新呈现’。React限制呈现的次数,以防止无限循环。错误,然后我把这个函数放在useEffect下,我只得到控制台输出,但useState没有改变
我试图创建的是一个React组件,当prop boxToggle的值为true时,它有条件地呈现,当用户单击exit按钮时,它也返回null。为了实现这一点,我创建了一个名为displayUI的本地useState,并使用if语句(这可能是问题所在,但我无法指出原因)将displayUI指定为true或false(这取决于boxToggle道具和exit按钮的onClick内部)。 但是我在组件中
我很困惑为什么Iam会出现这个错误:太多的重新呈现。React限制呈现次数以防止无限循环。当我尝试调用USESTAT保存checkBoxList数据时,就会发生这种情况。如果我注释掉行setListOptions(checkBoxList);错误消失了。我希望发生的是,setListoptions应该保存在本地,然后我可以调用listOptions来映射我的数据。谢谢你的协助。