增加 const onClick 但首先调用不起作用

发布于 2025-01-10 01:28:06 字数 341 浏览 1 评论 0原文

我想增加一个计数器,它可以工作,但在第一次调用时不起作用...

        const [count, setCount] = useState(0)
          function handleClick(){
            setCount(count+5)
            console.log(count)
          }

当我第一次调用该函数时,它应该直接显示“5”,因为我在之后编写了console.log增加,但在第一次调用时,它显示 0...(第二次单击)后显示 5...我不明白

I want to increase a counter, it's working but not in first calling...

        const [count, setCount] = useState(0)
          function handleClick(){
            setCount(count+5)
            console.log(count)
          }

when I call for first time the function, it should shows "5" directly because I wrote console.log after the increase but in first calling, it shows 0... after (second click) it shows 5... I dont understand

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

乖乖 2025-01-17 01:28:06

正确,这是因为更新尚未在此渲染中应用。您正在更新状态值并尝试在一次渲染中访问相同的值,这是行不通的。 另请参阅此答案。

如果您希望根据状态的新值执行某些操作,可以使用useEffect 挂钩。

const [count, setCount] = useState(0)
function handleClick(){
   setCount(count+5)
}
useEffect(() => {
   console.log(count)
}, [count])

Correct, it's because the update isn't applied yet in this render. You are updating the state value and trying to access the same value in one render, that won't work. See this answer also.

If you are looking to do something based on the state's new value, you can use the useEffect hook.

const [count, setCount] = useState(0)
function handleClick(){
   setCount(count+5)
}
useEffect(() => {
   console.log(count)
}, [count])
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文