当GetCreatorLicense()被禁用时,programe运行良好,我试图在循环之外设置数据,但仍然得到‘错误:太多的重新呈现’。React限制呈现的次数,以防止无限循环。错误,然后我把这个函数放在useEffect下,我只得到控制台输出,但useState没有改变
const Getdata = async () => {
let grabbedData = [];
await firebase
.database()
.ref(`/users`)
.orderByKey()
.on("value", (snapshot, key) => {
// console.log('snapshot....', snapshot);
grabbedData.push(snapshot.val());
});
setUserdata(grabbedData);
// console.log('grabbedData....', grabbedData);
};
useEffect(() => {
Getdata();
// GetCreatorLicense();
}, []);
React.useEffect(() => {
GetCreatorLicense();
}, []);
const GetCreatorLicense = () => {
console.log("this is a GetCreatorLicense this got printted");
let checkDis = false;
let checkDealer = false;
let checkSubDis = false;
let checkMoneyCollector = false;
let checkfranchise = false;
Object.keys(userdata).map(function (key) {
console.log("I am not printed", userdata[key]);
let x = userdata[key];
Object.keys(x).map(function (key2) {
console.log("I am not printed either", x[user1.uid].create.distributor);
if (x[user1.uid].create.distributor) {
checkDis = true;
}
if (x[user1.uid].create.subDistributor) {
checkSubDis = true;
}
if (x[user1.uid].create.delaer) {
checkDealer = true;
}
if (x[user1.uid].create.moneyCollector) {
checkMoneyCollector = true;
}
if (x[user1.uid].create.franchise) {
checkfranchise = true;
}
});
});
if (checkDis) {
setCanCreateDistributor(true);
}
if (checkSubDis) {
setCanCreateSubDistributor(true);
}
if (checkDealer) {
setCanCreateDealer(true);
}
if (checkMoneyCollector) {
setCanCreateMoneyCollector(true);
}
if (checkfranchise) {
setCanCreateFranchise(true);
}
};
您确实在useEffect
中更改了状态。getData
是从useeffect
中调用的,它正在调用setuserdata
,我认为这是一个usestate
函数。
可以通过声明应该触发useEffect的状态变量来避免这种情况,确保这些状态在useEffect中不会被更改。
呈现以下组件时出现错误: 太多的重放。React限制呈现的数量以防止无限循环。?
我在使用时遇到一个错误。即使加载页面是新鲜的,没有按下任何按钮,我的按钮onClick事件侦听器激活了,正如我之前在主题中提到的,我的错误: “错误:重新呈现太多。React限制呈现次数以防止无限循环。”
有人能帮帮我吗?
常量plusCount=()=>{ 常量minsCount=()=>{ 第二:不要在UI上给我发送错误:太多的重新呈现。React限制呈现次数以防止无限循环。 导出默认应用程序; 猜测:为什么这条消息两次都显示我错误,但第一次让我在UI上显示,第二次不显示我在UI上
我很困惑为什么Iam会出现这个错误:太多的重新呈现。React限制呈现次数以防止无限循环。当我尝试调用USESTAT保存checkBoxList数据时,就会发生这种情况。如果我注释掉行setListOptions(checkBoxList);错误消失了。我希望发生的是,setListoptions应该保存在本地,然后我可以调用listOptions来映射我的数据。谢谢你的协助。
斯塔克布利茨链接。