如何在使用状态挂钩中区分作为状态的函数和更新状态的函数

时间:2019-12-24 07:14:23

标签: javascript reactjs

根据react的打字稿绑定,useState挂钩的返回类型为[S, Dispatch<SetStateAction<S>>]。让我们关注元组的第二个元素。

如果我们内联别名,它将变成(S | ((prevState: S) => S)) => void。这样我们就有了一个函数,其参数为S | ((prevState: S) => S)

现在,我假设对于这两种用联合编码的情况,react必须执行不同的逻辑。在一种情况下,应直接使用参数,在另一种情况下,应使用旧状态调用该参数。

我的问题是:由于S本身可能是一个函数,因此简单地检查typeof x == 'function'听起来并不足够。

我试图找到此钩子的实际实现,但失败了。

0 个答案:

没有答案