почему я получаю разные результаты, если использую перехватчики реакции и компоненты на основе классов? - PullRequest
0 голосов
/ 05 мая 2020
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

почему я получаю другое выходы, если используются перехватчики реакции и компоненты на основе классов?

Как видите, вывод меняется, когда я использую компоненты на основе классов вместо перехватчиков реакции

почему ?????

...