为什么 useState 在 React 中返回数组

0 javascript arrays reactjs react-hooks

我现在正在尝试学习 React hooks,但 useState API 对我来说没有任何意义。

为什么我们要使用数组来表示一个值并使用该值的设置器?对于这个特定的设计选择有任何合乎逻辑的解释吗?

Gui*_*rie 5

钩子useState需要返回两个值:当前状态和更改它的函数。然而,Javascript 没有任何本地方法让函数返回多个值,它只能返回一个值。但是我们仍然可以通过返回包含我们想要返回的所有值的单个值来伪造多个返回值。在 的情况下useState,返回长度为 2 的数组本质上与返回两个值相同。

返回多个值的另一种方法是返回具有命名 fields 的对象{state, setState},但问题是使用起来会更笨重,因为您需要显式重命名这两个字段:

const {state: value, setState: setValue} = useState();
// vs
const [value, setValue] = useState()
Run Code Online (Sandbox Code Playgroud)

所以基本上,这是从单个函数调用返回多个值的好方法。