【发布时间】:2017-05-19 07:47:03
【问题描述】:
如何在单击按钮时显示从 1 到 2 到 3 到 n 的计数器。我试过在 for 循环中做一个 setState ,但那没有用。 我知道 react 的 setState 是异步的,我什至尝试过使用 prevState,但它不起作用。
import React, { Component } from 'react';
class App extends Component {
constructor(props) {
super(props);
this.state = {
counter: 0
};
this.startCounter = this.startCounter.bind(this);
}
startCounter() {
const self = this;
for (let i = 0; i < 100; i++) {
this.setState(prevState => {
const counter = prevState.counter + 1;
return Object.assign({}, prevState, {counter: counter})
});
}
}
render() {
return (
<div>
Counter Value: {this.state.counter}
<button onClick={this.startCounter}>Start Counter</button>
</div>
)
}
}
export default App;
webpack bin 下面
https://www.webpackbin.com/bins/-KkU1NJA-ectflyDgf_S
我想在点击时将计数从 0 增加到 n 作为各种计时器。
【问题讨论】:
标签: javascript reactjs setstate