使用React的useState Hook的标准方法如下:
const [count, setCount] = useState(0);
不过,显然const count
变量将被重新分配给其他原始值。
为什么变量没有定义为let count
?
答案 0 :(得分:42)
显然要重新分配给其他原始值
不是。重新呈现组件后,该函数将再次执行,创建一个新的作用域,并创建一个新的<!-- final var -->
<module name="LocalFinalVariableName">
<property name="format" value="^[A-Z0-9][A-Z0-9\_]*$" />
<message key="name.invalidPattern"
value="violation is final." />
</module>
<module name="MemberName">
<property name="format" value="^[m][A-Z][a-zA-Z0-9]*$" />
<message key="name.invalidPattern"
value="violation is member." />
</module>
变量,该变量与先前的变量无关。
示例:
count
注意:钩子要复杂得多,实际上并没有这样实现。这只是为了证明类似的行为。
答案 1 :(得分:2)
答案 2 :(得分:1)
在调用setCount之后,将重新呈现组件,并重新调用 useState返回新值。关键是计数是不变的。 所以这里没有错字。
从技术上讲,它是每个渲染的新变量。
答案 3 :(得分:1)
在这里我发现const令人沮丧,因为count需要更改,所以
let [count, setCount] = useState(0)
// simply can't use ++ on either side of count increment given we declare as const [count, setCount]
// instead declaration of var or let [count, setCount] allows simpler code
const increment = () => {
setCount(count++); //const cannot do this only let or var
};