首先 下面是我的第一段代码:
let testValue = this.state.testValue;
this.setState({testValue: testValue + 1});
console.log(this.state.testValue);
this.setState({testValue: testValue + 1});
console.log(this.state.testValue);
setTimeout(() => {
// 注意下面的testValue的下段代码的变化
this.setState({testValue:testValue + 1});
console.log(this.state.testValue);
this.setState({testValue:testValue + 1});
console.log(this.state.testValue);
}, 0);
页面上console中的输出结果是:
接着是另外一段代码:
let testValue = this.state.testValue;
this.setState({testValue: testValue + 1});
console.log(this.state.testValue);
this.setState({testValue: testValue + 1});
console.log(this.state.testValue);
setTimeout(() => {
// testValue这里是两段代码的不同点
this.setState({testValue:this.state.testValue + 1});
console.log(this.state.testValue);
this.setState({testValue:this.state.testValue + 1});
console.log(this.state.testValue);
}, 0);
请问为什么呢?ps:最开始的时候testValue默认值为1,请各位不吝赐教!
想明白了,因为在setTimeout里面的testValue !== this.state.testValue的,这样便能说的通了