[英]When to update state based on previous state in useState hook in React/Typescript
[英]Typescript error on react useState hook when updating typescript version
我使用 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>>
类型
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.