最近,我将项目中的react / react-dom版本从16.3.2升级到16.8.6,以便能够使用钩子,并且对我的代码进行了一些小的更改,一切都进行得很好。
但是我们使用的是打字稿,当我尝试使用React.useState()时,打字稿编译器抱怨并且无法编译:{{1}}
我认为问题在于@ types / react和@ types / react-dom软件包不是最新的。因此,我尝试将它们从16.3.2升级到16.8.5(@ types / react-dom不存在16.8.6)。
然后我可以使用Property 'useState' does not exist on type 'typeof React'.
,但其他所有功能都坏了,打字稿编译器抱怨几乎每个组件...
我的问题是:我该怎么办?升级那些软件包的最佳方法是什么?版本是否必须相同?
谢谢。
答案 0 :(得分:1)
import React from 'react';
export default function App() {
const [state, setState] = React.useState();
}
您尝试过这种方式吗?
并且您在package.json中使用了正确的@types
"@types/react": "^16.8.14",
"@types/react-dom": "16.8.3",
"typescript": "3.5.3"