0%

react-interview-batching

请问以下代码输出什么?为什么?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
import {Component} from "react";

interface DemoComponentState {
val: number;
}

export class DemoComponent extends Component<{}, DemoComponentState> {
constructor(props: {}) {
super(props);
this.state = {
val: 0,
};
}

componentDidMount() {
this.setState({val: this.state.val + 1}, () => {
console.log(this.state.val);
});

this.setState({val: this.state.val + 1}, () => {
console.log(this.state.val);
});

setTimeout(() => {
this.setState({val: this.state.val + 1}, () => {
console.log(this.state.val);
});

this.setState({val: this.state.val + 1}, () => {
console.log(this.state.val);
});
}, 0);
}

render() {
return null;
}
}

答案:1 1 2 2。
解析: