我的理解是,在使用useState()
时,我们应该这样声明数组:
const [someBooleanValue, setSomeBooleanValue] = useState(false)
代替
let [someBooleanValue, setSomeBooleanValue] = useState(false)
通常,const
用于不会改变的变量。在这里,someBooleanValue
将会改变。在这种情况下,允许我们使用const
关键字的原因是什么?
答案 0 :(得分:1)
在具有功能组件的React Hooks中,您的代码每次对功能组件的调用都获得一个状态值。 React分别处理存储,并在每次执行代码时通过useState
返回当前值,以提供最新状态值。
从文档中
我们声明一个称为count的状态变量,并将其设置为0。 React将记住两次重渲染之间的当前值,并为我们的函数提供最新的值。如果要更新当前计数,我们可以调用setCount。
因此,在这种情况下,我们使用const
,因为永远不要在代码中重新分配值。
答案 1 :(得分:-2)
const [someBooleanValue, setSomeBooleanValue] = useState(false)
实际上是这样的
const handleState = useState(false)
handleState[0]
是someBooleanValue
,而handleState[1]
是setSomeBooleanValue
。
此handleState
是一个数组,是一种引用类型。 handleState
只是指向该数组的指针,而实际上该指针永远不会改变。
someBooleanValue
和setSomeBooleanValue
是handleState
数组的元素,位于索引0
和1
。
因此,someBooleanValue
会发生变化,而不是指向包含它的数组的指针。
希望这可以澄清!