我無法理解爲什麼我的組件狀態在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