Javascript setState在更新嵌套子功能组件的状态时出错
我尝试多次更新状态。我怎样才能做到这一点。 我已经从其他网站看到了下面的方法,但无法使用它Javascript setState在更新嵌套子功能组件的状态时出错,javascript,reactjs,Javascript,Reactjs,我尝试多次更新状态。我怎样才能做到这一点。 我已经从其他网站看到了下面的方法,但无法使用它 componentDidUpdate(prevProps, prevState) 错误:错误:超过最大更新深度。当组件在componentWillUpdate或componentDidUpdate内重复调用setState时,可能会发生这种情况。React限制嵌套更新的数量,以防止无限循环。 state={ incobj:[], expenobj:[],
componentDidUpdate(prevProps, prevState)
错误:错误:超过最大更新深度。当组件在componentWillUpdate或componentDidUpdate内重复调用setState时,可能会发生这种情况。React限制嵌套更新的数量,以防止无限循环。
state={
incobj:[],
expenobj:[],
totalinc:0,
totalexp:0,
click:0
}
takeInp=(e)=>{
if(e[0]==="Income"){
this.setState({
incobj:this.state.incobj.concat( [e]),
totalinc:this.state.totalinc+parseInt(e[2])
})
}
if(e[0]==="Expense"){
this.setState({
expenobj:this.state.expenobj.concat( [e]),
totalexp:this.state.totalexp+parseInt(e[2])
})
}
}
deldata=(d)=>{
let num=parseInt( d.substr(1,d.length));
if(d.charAt(0)==="i"){
this.setState({
click:this.state.click+1
})
console.log(this.state.click, 'increased')
}
if(d.charAt(0)==="e"){
this.setState({
click:this.state.click+1
})
console.log(this.state.click, 'increased')
}
}
这是由无限循环引起的。您的
App
组件是Income
的父级,并将更新父级的deldata
方法传递给它。子功能组件具有在每次渲染时执行的以下代码段:
if (Remov) {
props.todel(Remov);
}
当Remov
为truthy时,它会更新父级的状态。这会导致子对象的重新加载。它更新父对象的状态。等等
不要在功能组件中触发
todel
,即使是有条件的。仅在响应某些事件(onClick等)时调用此函数。您需要向我们展示更多的代码,编写代码时的提示是使用一个变量来描述它们正在执行的操作。现在,你的代码没有一个是有意义的。@CyrusZei我也给了沙盒链接。当然,我会编辑所有变量名称,现在我删除了useState,并用“let”声明了remov,以使用onclik更新它。它正在工作,我已经完成了一半。