如何处理react,react-dom,@ types / react和@ types / react-dom软件包版本?

时间:2019-09-19 13:17:27

标签: reactjs typescript package.json

最近,我将项目中的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'.,但其他所有功能都坏了,打字稿编译器抱怨几乎每个组件...

我的问题是:我该怎么办?升级那些软件包的最佳方法是什么?版本是否必须相同?

谢谢。

1 个答案:

答案 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"