小编Fab*_*ian的帖子

反应 + useState() + previousState

我是个新手,在理解 useState Hook 时遇到问题 - 或者更具体地说是previousState的方面。

一个普通的 useState Hook,可能也是最常见的例子,看起来像这样:

import React, { useState} from 'react';

export default function CounterHooks({ initialCount }){
  const [count, setCount] = useState(initialCount);

  return (
    <div>
      <button onClick={() => setCount(count -1)}>-</button>
      <span>{count}</span>
      <button onClick={() => setCount(count + 1)}>+</button>
    </div>
  )
}
Run Code Online (Sandbox Code Playgroud)

到目前为止,我的理解如下:

  • 我调用 useState() 函数/Hook?并传入初始状态的参数(initialCount)
  • 我得到一个数组,我立即将其销毁为变量 count 和 setCount (这是函数)
  • 使用 setCount() 我可以更新状态,从而更新计数变量

到目前为止一切顺利,我认为... ;)

有时我会看到与 prevState (prevCount) 相同的反例,但我不明白:

<button onClick={() => setCount(prevCount => prevCount -1)}>-</button>
Run Code Online (Sandbox Code Playgroud)

这里会发生什么?这部分我不明白。到目前为止我的想法:

  • 在这种情况下,我以某种方式访问​​了以前的计数值。
  • setCount 现在需要一个函数
  • setCount 现在异步运行
  • 这个函数从哪里来?
  • prevCount 来自哪里? …

javascript reactjs react-hooks

5
推荐指数
1
解决办法
5996
查看次数

标签 统计

javascript ×1

react-hooks ×1

reactjs ×1