如何解决更新打字稿版本时react useState挂钩上的打字稿错误
我开发了带有react 16.9和typescript 3.5.2的react typescript应用程序。 它使用类似的反应状态挂钩
const [hValue,setHValue] = useState();
hValue
的类型是IValue
因此setHValue
的返回类型为React.Dispatch<any>
然后,我将打字稿版本更新为3.9.7,并给出了编译错误,看来现在setHValue
的返回类型已更改为React.Dispatch<React.SetStateAction<undefined>>
那是为什么?以及如何解决此问题?
解决方法
让我们看看useState
function useState<S = undefined>(): [S | undefined,Dispatch<SetStateAction<S | undefined>>];
也就是说,如果您未指定任何S
,则默认为undefined
。
因此,您需要指定您的初始类型,例如,如果hValue
是number
,则可以
const [hValue,setHValue] = useState<number>();
这样,setValue
将是React.Dispatch<SetStateAction<number>>
类型
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。