useState挂钩可以接收回调作为参数吗?

时间:2019-08-12 12:34:57

标签: reactjs typescript react-hooks

我正在重构一些打字稿代码,对我来说似乎是一个错误:

const [previousFormType, changePreviousFormType] = useState<string>(() => selectedFormType)  

我不确定代码是否正常工作,为什么有人会这样做呢?我没有找到任何说明该参数可以是回调函数的规范
我希望将其更改为:

const [previousFormType, changePreviousFormType] = useState(selectedFormType)  

selectedFormType是一个字符串

1 个答案:

答案 0 :(得分:4)

如果初始状态是昂贵的计算结果,则可以使用回调来设置初始状态。有关更多信息,请参见documentation

您的两个示例都是等效的,但就您而言

const [previousFormType, changePreviousFormType] = useState(selectedFormType)  

是更好的选择。