我有点困惑;可能更像是一个 JS 问题。const [someState, setSomeState] = useState();// The docs say that the above is equivalent to:var someStateVariable = useState();var someState = someStateVariable[0];var setSomeState = someStateVariable[1];// Why does it come out as a var and not a const?// I'd imagine it do something like:const someState = useState()[0]我最初是困惑于如何someState能尽管是一个进行编辑const。
1 回答
![?](http://img1.sycdn.imooc.com/5333a1d100010c2602000200-100-100.jpg)
繁星淼淼
TA贡献1775条经验 获得超11个赞
当你这样做时:
const [someState, setSomeState] = useState()
您正在使用解构赋值来访问从 返回的两个元素useState
,实际状态的属性以及更改状态的方法 ( updater
) 当您使用updater
不改变状态时更改状态的属性,React
实际上将“知道”该属性的先前属性value 并将基于前一个实例生成另一个实例。所以你应该面对这个迭代过程,因为const
在每次渲染调用时都会创建一个新的,并且新的与之前的没有任何关系。
我们声明了一个名为 count 的状态变量,并将其设置为 0。React 会记住它在重新渲染之间的当前值,并将最新的值提供给我们的函数。如果我们想更新当前计数,我们可以调用 setCount。
这是官方文档中的一个片段来澄清
添加回答
举报
0/150
提交
取消