反应中的“在渲染中调用setState导致无限循环”

时间:2019-04-17 07:27:19

标签: reactjs

我想为子类别设置状态,但是其状态显示超出最大更新深度。如何克服呢?请帮忙,谢谢。

getSubCategories(){
        let a = filter(this.state.allCategories,{'category_id': this.state.selectedCategoryId})
        let subCategories=[]
        a.map((c) =>{
            const value = {value: c.id, label: c.name}
            subCategories.push(value)
        })
        this.setState({subCategories:subCategories})
    }

预期结果是为子类别设置状态。

1 个答案:

答案 0 :(得分:0)

setState()将触发更新,这意味着组件将再次render。因此您不能在render中调用setState,因为它将一直保持更新和呈现状态。

您可以做的是可以在getSubCategories()上调用componentDidMount()方法,它将按预期工作。