我无法理解为什么我的组件状态在for循环中没有更改。Reactjs:在组件内部使用for-loopDidMount
下面是一个例子:
class Example extends React.Component {
constructor() {
super()
this.state = {
labelCounter: 1,
}
}
componentDidMount() {
for (let i = 0; i < 10; i++) {
this.setState({ labelCounter: this.state.labelCounter + 1 })
console.log(this.state.labelCounter) // this.statelabelCounter = 1
}
}
}
而如果我稍微改变了代码到这一点,似乎正在改变预期:
class Example extends React.Component {
constructor() {
super()
this.state = {
labelCounter: 1,
}
}
componentDidMount() {
for (let i = 0; i < 10; i++) {
this.setState({ labelCounter: ++this.state.labelCounter })
console.log(this.state.labelCounter)
}
}
}
根据文档,您还可以使用回调来获取更新完成时的值:https://facebook.github.io/react/docs/react-component.html#setstate – rtrigoso