React - setState 在单击延迟后得到更新

React - setState gets updated after one click delay

所以我是React的初学者,我正在做一个基本的计数器。我希望计数器在达到 5.So 后显示一条成功消息 我使用了以下代码

从 'react' 导入 React,{useState,useEffect}; 导入'./Cards.css';

函数规则() {

const [count,setCount] = useState(0);

const [message,setMessage] = useState("");

const handleIncrement = () => {
    setCount(count+1);
    console.log(count);
    printMessage();
};

const handleDecrement = () => {
    setCount(count -1);
    printMessage();
    console.log(count);

};

const printMessage = () => {
    if (count === 5){
        setMessage("This should be displayed on 5");

    }

    else if (count === 10){
        setMessage("Thsi should be displayed on 10");
    }

    else {
        setMessage("");
    }

    

};

return(
    <div>
        <h1>Counter is at {count}</h1>
        <button onClick = {handleIncrement}>+</button>
        <button onClick  = {handleDecrement}> - </button>
        <h4>{message}</h4>
    </div>

);






    

}

导出默认规则;

现在当我 运行 代码时,它给出了一个计数器,但是当我按下增加按钮时,成功消息出现 6. 当我按下减少计数器时,成功消息显示在4. 我检查了日志,我意识到计数器显示了正确的值,但在控制台中它稍后会更新。有什么帮助吗???

由于您使用的是功能组件,因此您应该在 useEffect 钩子中添加打印消息逻辑。