在.map循环中使用setState进行未处理的拒绝

时间:2018-07-01 01:18:30

标签: javascript reactjs

我正在尝试在循环中setState,但是收到Unhandled Rejection (TypeError): Cannot read property 'state' of undefined作为错误。

该循环包含另一个state中包含的API数据,在这个循环中,我尝试使用setState onClick= {() => this.setState({clicked: !this.state.clicked})}来更改{{1 }}设为className

我之前从未遇到过这个问题,但是我以前从未在循环中使用过。

这是代码的剥离示例

div

如果您需要查看更多内容,请告诉我,但这应该为我试图实现的目标奠定基础,并进一步说明className={this.state.clicked ? 'closed' : 'open'}在这种情况下引起的问题。

1 个答案:

答案 0 :(得分:1)

这两行

this.state.dailyRatesDates.map(function(i,index){
i.rate_plans.map(function(j,index){

可能导致“ this”为“ undefined”。

更改为箭头功能

this.state.dailyRatesDates.map((i,index) => {
i.rate_plans.map((j,index) => {

保留 this(来自封闭上下文)。