const Home = props => {
let [sta,steaa] = useState({h:80});
const clickHandler = () => {
console.log(sta.h);
setTimeout(()=>{
steaa({h:89});
console.log(sta.h);
},2000);
steaa({h:89});
steaa({h:150});
console.log(sta.h);
console.log("click handler in home.js");
};
return (
<div>
<h3>Home</h3>
<button onClick={clickHandler}>Click me</button>
</div>
);
};
вывод:
80
80
обработчик кликов дома. js
80
class Home extends Component{
state={
h:80
};
clickHandler = () => {
console.log(this.state.h);
setTimeout(()=>{
this.setState({h:89});
console.log(this.state.h);
},2000);
this.setState({h:89});
this.setState({h:150});
console.log(this.state.h);
console.log("click handler in home.js");
};
render(){
return (
<div>
<h3>Home</h3>
<button onClick={this.clickHandler}>Click me</button>
</div>
);
}
};
вывод:
80
80
обработчик кликов дома. js
89
почему я получаю другое выходы, если используются перехватчики реакции и компоненты на основе классов?
Как видите, вывод меняется, когда я использую компоненты на основе классов вместо перехватчиков реакции
почему ?????