最近,我将项目中的react / react-dom版本从16.3.2升级到16.8.6,以便能够使用钩子,并且对我的代码进行了一些小的更改,一切都进行得很好。
但是我们使用的是打字稿,当我尝试使用React.useState()时,打字稿编译器抱怨并且无法编译: Property 'useState' does not exist on type 'typeof React'.
我认为问题在于@ types / react和@ types / react-dom软件包不是最新的。 因此,我尝试将它们从16.3.2升级到16.8.5(@ types / react-dom不存在16.8.6)。
然后我可以使用usestate()
但是其他所有东西都坏了,打字稿编译器抱怨几乎每个组件...
我的问题是:我该怎么办? 升级那些软件包的最佳方法是什么? 版本是否必须相同?
谢谢。
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"