什么是React钩子中的`useState(null)[1]`?

时间:2020-02-05 11:58:43

标签: javascript reactjs react-hooks

我现在正在使用React钩子。我看过A value is trying to be set on a copy of a slice from a DataFrame. Try using .loc[row_indexer,col_indexer] = value instead See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy """Entry point for launching an IPython kernel. ,但忘了看到的地方。

我想知道与useState(null)[1]有什么区别?

2 个答案:

答案 0 :(得分:6)

docs中,

返回有状态值,以及更新它的函数。

但是他们的意思是

返回一个数组,其中第一个位置是有状态值,第二个位置是更新它的函数。

useState挂钩返回一个数组,其中第一个位置(索引0)是状态,第二个位置(索引1)是该状态的设置器。

因此,在使用useState(null)[1]时,您只会得到该状态的设置器。

完成时

 const [state, setState] = useState(null)

您在做什么叫做Destructuring Assignment

并且因为在大多数情况下您都希望同时拥有statesetState,所以解构比使用要容易得多。

const hook = useState(null)
const state = hook[0]
const setState = hook[1]

通过解构,您可以只用一条线就可以做到这一点

如果只需要二传手,则可以通过

const setState = useState(null)[1] // only getting the setter

请记住,都是同一件事


我想知道与useState(null)有什么不同?

useState(null)返回一个数组([state, setState]

useState(null)[1]正在访问返回的数组(setState

答案 1 :(得分:2)

下一个表达式是等效的:

const [, setState] = useState(null); // Destructuring assignment
const setState = useState(null)[1]; // Array index excess.

由于useState返回一个值数组,因此您可以unpack values from the array

此外,您可以访问(index into)数组项。