我正在尝试在循环中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'}
在这种情况下引起的问题。
答案 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
(来自封闭上下文)。