我是个新手,在理解 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>
)
}
到目前为止,我的理解如下:
- 我调用 useState() 函数/Hook?并传入初始状态的参数(initialCount)
- 我得到一个数组,我立即将其销毁为变量 count 和 setCount(这是函数)
- 使用 setCount() 我可以更新状态,从而更新计数变量
到目前为止一切顺利,我认为... ;)
有时我会看到与 prevState (prevCount) 相同的反例,但我不明白:
<button onClick={() => setCount(prevCount => prevCount -1)}>-</button>
这里会发生什么?这部分我不明白。到目前为止我的想法:
- 在这种情况下,我以某种方式访问了以前的计数值。
- setCount 现在需要一个函数
- setCount 现在异步运行
- 这个函数从哪里来?
- prevCount 来自哪里?
- 当我运行这个时,什么被放入 prevCount?
你明白我的困惑吗?我不知道我应该如何以不同的方式构建这个......
非常感谢您的帮助。