Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 警告:超过最大更新深度。当组件在useEffect内部调用setState时,可能会发生这种情况_Javascript_Reactjs_React Hooks - Fatal编程技术网

Javascript 警告:超过最大更新深度。当组件在useEffect内部调用setState时,可能会发生这种情况

Javascript 警告:超过最大更新深度。当组件在useEffect内部调用setState时,可能会发生这种情况,javascript,reactjs,react-hooks,Javascript,Reactjs,React Hooks,我可以忽略标题错误吗?我有一个组件,它曾经触发运行200次模拟,每次更新模拟市民的数量,并将获胜者分配给一个键控阵列 但是我认为,因为setCount是在useffect中调用的,useffect也会检查该值,所以它会达到一个深度 导出默认函数({items,max=200,}){ const bout=useBout() const brands=useSelector(state=>groupBy(state.brands,“id”)) 常量[started,setStarted,]=use

我可以忽略标题错误吗?我有一个组件,它曾经触发运行200次模拟,每次更新模拟市民的数量,并将获胜者分配给一个键控阵列

但是我认为,因为setCount是在useffect中调用的,useffect也会检查该值,所以它会达到一个深度

导出默认函数({items,max=200,}){
const bout=useBout()
const brands=useSelector(state=>groupBy(state.brands,“id”))
常量[started,setStarted,]=useState(true)
const[count,setCount,]=useState(0)
const[simulations,setSimulations,]=useState({})
const teams=groupBy(bout.items,“teamId”)
常量段=使用备注(()=>{
返回生成段({团队、品牌、模拟、计数})
},[团队、品牌、模拟、计数])
useffect(()=>{
若有(项目){
装载(项目)
}
},[项目,]
useffect(()=>{
如果(已启动并计数项目.winner)?.teamId
设置计数(计数+1)
setWinner(id)
}
},[count,max,start,])
const onStart=()=>{
跟踪(“战斗点击”)
设置计数(0)
设置模拟([]))
设置开始(真)
}
const setWinner=(id)=>{
常量值=模拟[id]?数量(模拟[id])+1:1
设置模拟({…模拟,[id]:值,})
}
返回
}

您不能避免这200次模拟,因为性能滞后将无法满足要求集。对于希望运行模拟的用户来说,性能滞后不是问题。与项目的其他部分相比,200是相当小的。
Warning: Maximum update depth exceeded. This can happen when a component calls setState inside useEffect, but useEffect either doesn't have a dependency array, or one of the dependencies changes on every render.