我刚刚开始编写一些自定义钩子,然后弹出问题,我应该将一组值作为数组或对象返回?
请问useState返回一对值的数组而不是具有两个属性的对象的特定原因吗?
我觉得我已经读过一些关于此的内容,但无法回忆。
谢谢
答案 0 :(得分:1)
要在@Vishwas comment上进行扩展,这与命名有关。
fine print of the useState docs中已简要提及。
当我们使用
useState
声明状态变量时,它返回一对-包含两个项目的数组。第一项是当前值,第二项是让我们对其进行更新的函数。使用[0]
和[1]
来访问它们会有些混乱,因为它们具有特定的含义。这就是为什么我们改用数组销毁的原因。
const [someValue, someUpdateFunction] = useState(0);
在底层,React将array[0]
处的数据作为当前值,并将array[1]
处的数据作为更新函数。仅职位很重要,命名不重要。开发人员实施useState
时,可以为这些位置的值提供有意义的名称。